如何在SQLALchemy查询中获取实体类型

时间:2010-06-10 12:20:14

标签: python sql sqlalchemy

我知道如何获取将从select语句返回的列,但是如何获取将从sqlalchemy.orm.Query对象返回的实体?

>>> sess = Session()
>>> q = sess.query(Entity1, Entity2)
>>> q.statement.c.keys()
['e1_col1', 'e1_col2', ..., 'e2_col1', 'e2_col2, ...]

我想要[Entity1, Entity2]或类似的东西!

2 个答案:

答案 0 :(得分:2)

你可以试试这个:

[e.mapper.class_ for e in q._entities]

虽然我不想直接使用_entities属性并找到其他方法来访问它,但AFAIK没有。

答案 1 :(得分:0)

sqlalchemy_utils模块具有一个名为get_query_entities的函数来完成工作

https://sqlalchemy-utils.readthedocs.io/en/latest/orm_helpers.html#sqlalchemy_utils.functions.get_query_entities