我正在尝试连接到mysql数据库, 适用于选项1:
from sqlalchemy import create_engine
engine = create_engine('mysql://root:root@localhost/lend', echo=True)
cnx = engine.connect()
x = cnx.execute("SELECT * FROM user")
但在这里分解:
from pandas.io import sql
xx = sql.read_frame("SELECT * FROM user", cnx)
cnx.close()
与
AttributeError:'Connection'对象没有属性'rollback'
答案 0 :(得分:19)
您需要具有原始数据库连接,而不是Connection
的实例。要拨打engine.raw_connection()
或engine.connect().connection
,请致电
from pandas.io import sql
#cnx = engine.connect().connection # option-1
cnx = engine.raw_connection() # option-2
xx = sql.read_frame("SELECT * FROM user", cnx)
cnx.close()
答案 1 :(得分:1)
使用MySQLdb模块创建连接。 ongoing progress有更好的SQL支持,包括sqlalchemy,但还没有准备好。
如果您习惯安装pandas的开发版本,您可能需要密切关注该链接问题,并在合并后立即切换到使用开发版本的pandas。虽然pandas的SQL支持是可用的,但是如果你广泛使用Pandas + SQL,可能会出现一些数据类型,缺失值等的错误。