Python 将sqlalchemy查询结果转换为DICT列表

Python 将sqlalchemy查询结果转换为DICT列表,python,sqlalchemy,Python,Sqlalchemy,我希望将我的查询结果转换为如下所示的dict列表: result_dict = [{'category': 'failure', 'week': '1209', 'stat': 'tdc_ok', 'severityDue': '2_critic'}, {'category': 'failure', 'week': '1210', 'stat': 'tdc_nok', 'severityDue': '2_critic'}] 但相反,我把它作为一个dict,因此用重复的键: result_dic

我希望将我的查询结果转换为如下所示的dict列表:

result_dict = [{'category': 'failure', 'week': '1209', 'stat': 'tdc_ok', 'severityDue': '2_critic'}, {'category': 'failure', 'week': '1210', 'stat': 'tdc_nok', 'severityDue': '2_critic'}]
但相反,我把它作为一个dict,因此用重复的键:

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查询结果转换为dict列表(每行都是dict)

请帮忙

试试看

result_dict = [u.__dict__ for u in my_query.all()]
此外,在
for
循环之前,您的
结果的类型是什么?它的行为相当奇怪。

没有

您可以尝试:

result_dict = [u.__dict__ for u in my_query.fetchall()]
现在可以了

result_dict = [u._asdict() for u in my_query.all()]
原因是u实际上不是一个元组,而是一个KeyedTuple


关于这一点的正确答案也会有帮助

不确定这是否是因为从最初的帖子开始已经过了几年,但以下内容对我来说很有用(其他人没有)


我使用的是core,而不是ORM。

这取决于您是否使用ORM(OP没有指定)
.all()
是用于ORM查询的
fetchall()
代理。[row.\uu dict\uuuuuuuuu用于User.query.all()中的行]
result_dict = [dict(u) for u in my_query.fetchall()]