将Pandas数据框导入SQL Server时出现接口错误

时间:2019-10-25 09:33:24

标签: python mysql pyodbc pandas-to-sql

我有一个名为:data的熊猫数据框 我正在尝试将此pandas数据帧读取到sql server中的表中。 我可以从sql读取数据到python,但遇到将数据框加载到表中的问题。

我已经尝试了一些示例,但仍然遇到相同的错误: 数据库错误:在SQL'SELECT name FROM sqlite_master WHERE type ='table'AND name = ?;'中执行失败:('42S02',“ [42S02] [Microsoft] [ODBC SQL Server驱动程序] [SQL Server]无效对象名称'sqlite_master'。(208)(SQLExecDirectW); [42S02] [Microsoft] [ODBC SQL Server驱动程序] [SQL Server]语句无法准备。(8180)“)

目前,我有以下代码:

PASSW           = 'test'   
SERVER          = '111.111.11'
DB              = 'Database'
Table           = 'TableName'



data = pd.read_csv('2019_Prediction_24_10.csv')
cnxn = pyodbc.connect(DRIVER='{ODBC Driver 13 for SQL Server}', SERVER= SERVER, 
                          DATABASE= DB,User = 'User', Password = PASSW)

data.to_sql(con=cnxn, name='Predictions',schema = 'PA' ,if_exists='replace')

我是pyodbc的新手,并且将python和sql server一起使用,不太确定出什么问题了,更不用说修复它了。

可以请某人帮助我,或为我指明正确的方向

1 个答案:

答案 0 :(得分:0)

to_sql documentation中所述:

  

con:sqlalchemy.engine.Engine或sqlite3.Connection

您已为{ "genreId": 1, "genreName": "action", "_links": { "self": { "href": "http://localhost:8080/api/v1/moviegenre/id/1" } } } 提供了一个(pyodbc)to_sql对象,因此pandas将其视为SQLite连接。要将Connection与SQL Server一起使用,您需要安装SQLAlchemy,创建一个to_sql对象,并将其传递给Engine