Python Pandas.to_sql函数抛出导入错误(DLL加载失败)
当我在Pandas系列上调用Python Pandas.to_sql函数抛出导入错误(DLL加载失败),python,pandas,Python,Pandas,当我在Pandas系列上调用.to_sql()时,我得到一个ImportError异常: 发生异常:导入错误 DLL加载失败:找不到指定的模块 我导入了pandas和pyodbc,我能够连接到数据库服务器并通过读取数据。读取sql查询()以及在代码的其他地方使用pandas数据帧。它仅在我尝试调用.to_sql() 熊猫版本0.23.4 import pandas as pd import numpy as np import pyodbc conn = pyodbc.connect('Driv
.to_sql()
时,我得到一个ImportError
异常:
发生异常:导入错误DLL加载失败:找不到指定的模块 我导入了
pandas
和pyodbc
,我能够连接到数据库服务器并通过读取数据。读取sql查询()
以及在代码的其他地方使用pandas数据帧。它仅在我尝试调用.to_sql()
熊猫版本0.23.4
import pandas as pd
import numpy as np
import pyodbc
conn = pyodbc.connect('Driver={SQL Server};Server=' + prm.DATASOURCE + ';DATABASE=' + prm.DATABASE + ';UID=' + prm.USER + ';PWD=' + prm.PASSWORD)
df.to_sql('table_name', conn, if_exists='append', index=True, index_label=['country_id','year_id'])
感谢您看到这一点,问题似乎在于DataFrame.to_sql应该与SQLAlchemy一起使用。您是否安装了SQLAlchemy?如果是这样,可以尝试传入SQLAlchemy引擎,而不是pyodbc连接
从sqlalchemy导入创建引擎
#创建您的引擎。
引擎=创建引擎('mssql+pyodbc://user:password@服务器/数据库')
#使用引擎而不是pyodbc连接
df.to_sql('table_name',engine,if_exists='append',index=True,index_label=['country_id','year_id']))
从上面链接的文档中:
pandas.io.sql模块提供了一组查询包装器,以方便数据检索和减少对特定于数据库的API的依赖。。。。。。
如果未安装SQLAlchemy,则仅为sqlite提供回退
从
con:sqlalchemy.engine.engine或sqlite3.Connection
使用SQLAlchemy可以使用该数据库支持的任何数据库
图书馆
为sqlite3.Connection对象提供了传统支持
你的第二个论点是“self.conn”而不是“conn”?皮特:是的,谢谢你noticing@Teddy,我不这么认为。OP说他们可以使用pd.read_sql_query()@pistolpate,谢谢你指出这一点。我认为@Nuno应该首先探索这一途径,因为只需在谷歌上搜索
importorror(DLL加载失败)
就会显示很多类似问题标记为已解决的SO帖子。:)@Teddy,不,pandas.DataFrame.to_sql需要一个sqlalchemy引擎,而不是pyodbc连接。请参阅下面我的帖子。改为sqlalchemy by。创建引擎,解决了问题!我不知道你可以直接用pyodbc读写。谢谢你,我也不知道,直到我仔细研究了它,说实话,这根本不是直觉。我希望他们通过将“con”参数重命名为“engine”使其更加明确。不客气。