我希望将查询结果转换为这样的字典列表:
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查询结果转换为dicts列表(每行都是dict)?
请帮助
答案 0 :(得分:10)
尝试
result_dict = [u.__dict__ for u in my_query.all()]
除了result_dict
循环之前你的 for
的类型是什么?这种行为很奇怪。
答案 1 :(得分:2)
答案 2 :(得分:1)
现在可以使用
result_dict = [u._asdict() for u in my_query.all()]
原因是你实际上并不是一个元组,而是一个KeyedTuple。
此thread上的正确答案也会有所帮助
答案 3 :(得分:0)
不确定这是否是因为自原始帖子以来已经过了几年,但是以下对我有用(其他人没有)...
result_dict = [dict(u) for u in my_query.fetchall()]
我在核心而不是ORM中工作。