SQLAlchemy AttributeError:' module'对象没有属性' PandasSQLAlchemy'

时间:2014-10-27 17:31:38

标签: python pandas sqlalchemy

我正在将一个pandas Dataframe写入Postgres数据库:

from sqlalchemy import create_engine, MetaData
engine = create_engine(r'postgresql://user:password@localhost:5432/db')
meta = MetaData(engine, schema='data_quality')
meta.reflect(engine, schema='data_quality')
pdsql = pd.io.sql.PandasSQLAlchemy(engine, meta=meta)
pdsql.to_sql(dataframe, table_name)

它工作得很好,但现在SQLAlchemy在第5行抛出以下错误:

AttributeError: 'module' object has no attribute 'PandasSQLAlchemy'

我不确定它是否相关,但是Pandas同时破裂 - 就像这个google-api-python-client问题一样:

Could not Import Pandas: TypeError

我昨天安装了google-api-python-client并卸载它修复了Pandas的问题,但是SQLAlchemy仍然无法正常工作。

2 个答案:

答案 0 :(得分:2)

我想你使用的是pandas 0.15。 PandasSQLAlchemy尚未真正公开,并在大熊猫0.15至SQLDatabase中重命名。因此,如果您在代码中替换它,它应该可以工作(所以pdsql = pd.io.sql.SQLDatabase(engine, meta=meta))。

但是,从pandas 0.15开始,read_sql_tableto_sql函数中也有架构支持,因此不需要制作MetaDataSQLDatabase手动对象。相反,这应该这样做:

dataframe.to_sql(table_name, engine, schema='data_quality')

请参阅0.15发行说明:http://pandas.pydata.org/pandas-docs/stable/whatsnew.html#improvements-in-the-sql-io-module

答案 1 :(得分:0)

我最近遇到此错误,并且解决了我删除与.py文件位于同一目录中的.pyc文件的问题。这些文件(.pyc)保存了先前的版本信息以及时间,日期。