如何为panda编写connectionobject.DataFrame在sql中创建一个表



我正在尝试将一个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_。

相关内容

  • 没有找到相关文章

最新更新