PostgreSQL Scalars方法仅返回关联表首项,SQLAlchemy如何获取(Foo,Bar)?
解决SQLAlchemy返回多实体元组的问题
直接用
res.all()替代res.scalars().all()
这是因为scalars()方法的核心作用就是提取结果集中每一行的第一个元素,所以你只会得到Foo对象的列表。而直接调用all()会返回完整的行数据,如果你查询的是Foo和Bar两个实体,结果就会是(Foo, Bar)形式的元组列表。实际查询示例:
假设你是通过JOIN关联Foo和Bar表查询:res = session.query(Foo, Bar).join(Bar, Foo.id == Bar.foo_id) result_list = res.all() # 此时result_list的结构为[(Foo实例1, Bar实例1), (Foo实例2, Bar实例2), ...]
内容的提问来源于stack exchange,提问作者tobias
相关产品推荐
相关产品推荐

