Python:将Pandas Dataframe写入MSSQL - >数据库错误

Pin*_*ts0 3 python database sql-server dataframe pandas

我有一个大约20k行和20列的pandas数据帧.我想将它写入MSSQL中的表.

我已成功建立连接:

connection = pypyodbc.connect('Driver={SQL Server};' 
                              'Server=XXX;' 
                              'Database=line;' 
                              'uid=XXX;' 
                              'pwd=XXX')

cursor = connection.cursor()
Run Code Online (Sandbox Code Playgroud)

我正在尝试使用以下代码将我的pandas数据帧写入MSSQL服务器:

df_EVENT5_16.to_sql('MODREPORT', connection, if_exists = 'replace')
Run Code Online (Sandbox Code Playgroud)

但是我收到以下错误:

DatabaseError:sql上的执行失败'SELECT name FROM sqlite_master WHERE type ='table'AND name =?;':('42S02',"[42S02] [Microsoft] [ODBC SQL Server驱动程序] [SQL Server]无效的对象名称' SQLITE_MASTER".")

Max*_*axU 6

现代Pandas版本期望SQLAlchemy engine作为连接,因此使用SQLAlchemy:

from sqlalchemy import create_engine

con = create_engine('mssql+pyodbc://username:password@myhost:port/databasename?driver=SQL+Server+Native+Client+10.0')
Run Code Online (Sandbox Code Playgroud)

然后:

df_EVENT5_16.to_sql('MODREPORT', con, if_exists='replace')
Run Code Online (Sandbox Code Playgroud)

来自DataFrame.to_sql()docs:

con:SQLAlchemy引擎或DBAPI2连接(传统模式)

使用SQLAlchemy可以使用该库支持的任何数据库.

如果是DBAPI2对象,则仅支持sqlite3.