返回SQLAlchemy结果作为dicts而不是列表

时间:2015-07-25 08:26:34

标签: python sqlalchemy

当我检查查询的结果时,它看起来像一个列表列表。我想返回一个dicts列表,将列名映射到结果值。如何将结果行转换为dicts?

{{1}}

3 个答案:

答案 0 :(得分:16)

结果看起来像元组/列表,但它们实际上是一个特殊的KeyedTuple对象。使用_asdict()方法将每一行转换为字典。

return [r._asdict() for r in results]
[{'campaign_id': 3, 'title': 'campaign title', 'status_count': 1},
 {'campaign_id': 4, 'title': 'campaign title', 'status_count': 1}]

答案 1 :(得分:2)

在Python 3.7 / SQLAlchemy 1.3.18中,这对我有用:

return [dict(r) for r in results]

答案 2 :(得分:0)

以下代码对我有用。(SQLAlchemy 1.3.16):

return [row.__dict__ for row in results]