繁体   English   中英

将 sqlalchemy 查询结果转换为字典列表

[英]convert sqlalchemy query result to a list of dicts

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

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

请帮助

尝试

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

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

没有.all()

你可以试试:

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

这现在有效

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

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

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

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM