在熊猫中选择SQLalchemy的方法read_sql

时间:2019-01-21 18:30:39

标签: python sql postgresql pandas sqlalchemy

试图从sqlalchemy查询中获取结果:

l = session.query(a.id)

这适用于正确的结果:

df = pd.read_sql(sql=l.statement,con=conn)

此外,这将返回正确的sql:

print(l)

但是,文档指出使用pandas.read_sql:

df = pd.read_sql(l, conn)

应该返回结果,对吗?

参考:https://pandas.pydata.org/pandas-docs/stable/generated/pandas.read_sql.html

1 个答案:

答案 0 :(得分:1)

session.query()生成查询对象。参见sqlalchemy.org

pd.read_sql(sql, con)需要选择对象或文本对象。根据您的参考:

  

sql:字符串或SQLAlchemy可选(选择对象或文本对象)SQL   要执行的查询或表名。

您可以检查ll.statement的类型:

type(l)'sqlalchemy.orm.query.Query'

type(l.statement) 'sqlalchemy.sql.annotation.AnnotatedSelect'

当执行print(query)时,查询类被定义为返回select语句。