SQLAlchemy 获取类对象而不是实际结果
Posted
技术标签:
【中文标题】SQLAlchemy 获取类对象而不是实际结果【英文标题】:SQLAlchemy getting a class object instead of actual result 【发布时间】:2022-01-03 08:52:34 【问题描述】:我正在使用自动映射对现有 Postgres 数据库运行查询。
Base = automap_base()
Base.prepare(engine, reflect=True)
City = Base.classes.city
dm = session.query(City).first()
Output: <sqlalchemy.ext.automap.city at 0x15f7a87b8>
如何设置才能看到表格中的实际结果?
【问题讨论】:
尝试打印dir(dm)
@AbdulNiyasPM 它输出一堆方法和列名列表。我使用 dict 来查看实际结果,然后将其转换为 pandas df。有没有标准的方法来处理这个?
everything 是一个“类对象”(如果你的意思是一个类的 instance)。确切地说,您期望而不是这个输出?
@juanpa.arrivillaga 我明白了,我希望在表格或任何其他格式、列表或字典中查看实际数据。
【参考方案1】:
来自 cmets:
我使用 dict 查看实际结果,然后将其转换为 pandas df。有没有标准的方法来处理这个?
只需使用 pandas 的read_sql_query()
方法:
Base = automap_base()
Base.prepare(autoload_with=engine)
City = Base.classes.city
query = select(City)
df = pd.read_sql_query(query, engine)
print(df)
"""
id city_name prov
0 1 Calgary AB
1 2 Vancouver BC
"""
【讨论】:
以上是关于SQLAlchemy 获取类对象而不是实际结果的主要内容,如果未能解决你的问题,请参考以下文章
获取时间戳而不是日期时间对象,sqlalchemy python 2.7