sql-server – 在使用带有pandas和sqlalchemy的python 3.5时,尝
问题
我正在尝试使用python来读取我的csv文件并将其作为新表放入Microsoft SQL Server 2016.简单地说,我不想在SQL上创建一个表并导入csv,我想在python中编写一个脚本,可以读取csv并为我在SQL中创建一个新表. UPDATE 我可能不得不重新考虑我的做法.我更正了驱动程序,但是我从to_sql收到以下错误.我认为我的身份验证方案有问题.遗憾的是,to_sql文档和sql_alchemy没有太多关联.开始考虑替代方案. sqlalchemy.exc.DBAPIError was unhandled by user code Message: (pyodbc.Error) ('08001','[08001] [Microsoft][SQL Server Native Client 11.0]Named Pipes Provider: Could not open a connection to SQL Server [53]. (53) (SQLDriverConnect)') 码 import pandas as pd import sqlalchemy #Read the file data = pd.read_csv(file.csv) #Connect to database and write the table server = "DERPSERVER" database = "HERPDB" username = "DBUser" password = "password" tablename = "HerpDerpTable" driver = "SQL+Server+Native+Client+11.0" #Connect to SQL using SQL Server Driver print("Connect to SQL Server") cnxn = sqlalchemy.create_engine("mssql+pyodbc://"+username+":"+password+"@"+server +"/"+database + "?driver="+driver) UPDATE 我重写了字符串如下,但它不起作用: sqlalchemy.create_engine('mssql+pymssql://'+username+':'+ password + '@' + server + '/' + database + '/?charset=utf8') data.to_sql(tablename,cnxn); 尝试 这些是我的方法中需要注意的一些重要事项.请特别注意我在下面分享的第二个要点.我认为我的create_engine的连接字符串在某种程度上或者可能是错误的,但不知道出了什么问题,因为我遵循了文档. >我相信我处于无DSN的情况.因此,试图通过文档描述的其他方式进行连接. 由于未来的目标和需求,我正在努力学习python并将其用作脚本语言.我将不胜感激任何协助,帮助,指导. 解决方法您应该明确指定MS SQL Server驱动程序 if you use SQLAlchemy version 1.0.0+:例: engine = create_engine("mssql+pyodbc://scott:tiger@myhost:port/databasename?driver=SQL+Server+Native+Client+10.0")
List of Native SQL Server Client Names > SQL Server 2005:
> SQL Server 2008:
> SQL Server 2016:
或者你可以使用pymssql: engine = create_engine('mssql+pymssql://<username>:<password>@<freetds_name>/?charset=utf8') (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |