我正在尝试将一个csv文件(由40个头和4000行组成(转换为sql数据库服务器中的一个表。我在某个地方读到,我可以用两行字来完成,简单到:
df = pandas.read_csv("file.csv")
df.to_sql(tableName, conn)
我试着让conn如下:
conn = pyodbc.connect('DRIVER={ODBC Driver 13 for SQL Server}; SERVER=servername; DATABASE=testdb; Trusted_Connection=yes')
但它失败了,我得到了这些错误:
数据库错误:在sql"SELECT name FROM sqlite_master WHERE type='table'AND name=?;"上执行失败:('42S02',"[42S02][Microsoft][ODBC Driver 13 for SQL Server][SQL Server]无效的对象名'sqlite_master'。(208((SQLExecDirectW(;[42S02][Microsoft][ODBC驱动程序13 for SQL Server:[SQL Server]语句无法准备。(8180("(
显然,我没有正确定义conn。但我不知道如何纠正。
如DataFrame.to_sql文档中所述,第二个参数(con
(是"sqlalchemy.engine.engine或sqlite3.Connection":
使用SQLAlchemy可以使用该库支持的任何数据库。为sqlite3.Connection对象提供了旧版支持。
因此,您需要将SQLAlchemy添加到您的项目中,使用其create_engine
方法创建一个指向数据库的引擎对象,例如
from sqlalchemy import create_engine
# ...
your_sql_engine = create_engine('mssql+pyodbc://@your_DSN_name')
然后将CCD_ 3作为第二个参数传递给Panda的CCD_。