2014-10-27 72 views
1

我正在写一个数据帧大熊猫的Postgres数据库:SQLAlchemy的AttributeError的:“模块”对象有没有属性“PandasSQLAlchemy”

from sqlalchemy import create_engine, MetaData 
engine = create_engine(r'postgresql://user:[email protected]: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' 

我不知道,如果是相关的,但是熊猫打破在同一时间 - 酷似谷歌这样的API的Python客户端问题:

Could not Import Pandas: TypeError

我昨天安装了google-api-python-client,并且卸载它解决了Pandas的问题,但是SQLAlchemy仍然不起作用。

回答

1

我想你使用的是熊猫0.15。 PandasSQLAlchemy还没有真正公开,并在熊猫0.15到SQLDatabase更名。所以如果你在代码中替换它,它应该可以工作(所以pdsql = pd.io.sql.SQLDatabase(engine, meta=meta))。

然而,从熊猫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

+0

非常感谢,里斯 - 那定了! – user3591836 2014-10-27 19:53:01

+0

(我没有意识到,当我之前修复熊猫导入错误时,我更新为熊猫0.15) – user3591836 2014-10-27 20:02:46

相关问题