I want to have the result of my query converted to a list of dicts like this :
result_dict = [{'category': 'failure', 'week': '1209', 'stat': 'tdc_ok', 'severityDue': '2_critic'}, {'category': 'failure', 'week': '1210', 'stat': 'tdc_nok', 'severityDue': '2_critic'}]
But instead I get it as a dict, thus with repeated keys:
result_dict = {'category': 'failure', 'week': '1209', 'stat': 'tdc_ok', 'severityDue': '2_critic', 'category': 'failure', 'week': '1210', 'stat': 'tdc_nok', 'severityDue': '2_critic'}
I get this result by doing this :
for u in my_query.all():
result_dict = u.__dict__
How can I convert sqlAlchemy query result to a list of dicts (each row would be a dict) ?
Help please
Try
result_dict = [u.__dict__ for u in my_query.all()]
Besides what is the type of your result_dict
before the for
loop? Its behavior is rather strange.
This works now
result_dict = [u._asdict() for u in my_query.all()]
The reason is that u is not actually a tuple but a KeyedTuple.
The correct answer on this thread also would be helpful
Not sure if this is because a few years have passed since the original post, but the following works for me (the others did not)...
result_dict = [dict(u) for u in my_query.fetchall()]
I am working in core, not ORM.
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.