14

我想将我的查询结果转换为这样的字典列表:

result_dict = [{'category': 'failure', 'week': '1209', 'stat': 'tdc_ok', 'severityDue': '2_critic'}, {'category': 'failure', 'week': '1210', 'stat': 'tdc_nok', 'severityDue': '2_critic'}]

但相反,我将它作为一个字典,因此使用重复的键:

result_dict = {'category': 'failure', 'week': '1209', 'stat': 'tdc_ok', 'severityDue': '2_critic', 'category': 'failure', 'week': '1210', 'stat': 'tdc_nok', 'severityDue': '2_critic'}

我通过这样做得到这个结果:

for u in my_query.all():
     result_dict = u.__dict__

如何将 sqlAlchemy 查询结果转换为字典列表(每一行都是一个字典)?

请帮忙

4

4 回答 4

16

尝试

result_dict = [u.__dict__ for u in my_query.all()]

除了 的循环result_dict之前的类型是什么?for它的行为相当奇怪。

于 2013-07-18T08:46:08.560 回答
5

没有.all()

你可以试试:

result_dict = [u.__dict__ for u in my_query.fetchall()]
于 2015-05-11T13:48:12.657 回答
5

这现在有效

result_dict = [u._asdict() for u in my_query.all()]

原因是 u 实际上不是一个元组,而是一个 KeyedTuple。

此线程上的正确答案也会有所帮助

于 2017-08-30T10:09:25.743 回答
1

不确定这是否是因为自原始帖子以来已经过去了几年,但以下内容对我有用(其他人没有)......

result_dict = [dict(u) for u in my_query.fetchall()]

我在核心工作,而不是 ORM。

于 2020-06-15T18:52:12.523 回答