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".")
现代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)
con:SQLAlchemy引擎或DBAPI2连接(传统模式)
使用SQLAlchemy可以使用该库支持的任何数据库.
如果是DBAPI2对象,则仅支持sqlite3.