简体   繁体   English

来自 Django QuerySet 的嵌套字典

[英]Nested dictionary from Django QuerySet

I am stuck in creating nested dictionary from Django QuerySet My code is我被困在从 Django QuerySet 创建嵌套字典我的代码是

qr_dict = [{'id':i.pop('ID'), 'data':[{i['ACCOUNT_NAME']}] } for i in query_result]

i got the result from code listed above:我从上面列出的代码中得到了结果:

[{'id': 123, 'data': [{'MUHAMMAD ADNAN'}]}, {'id': 123, 'data': [{'NAVEED AHMED SUNNY'}]}]

i need the result like following dictionary list:我需要像以下字典列表这样的结果:

[{'id': 123, 'data': [{'MUHAMMAD ADNAN'},{'NAVEED AHMED SUNNY'}]}]

what is wrong i am doing please help thanks in advance.我在做什么错,请帮助提前致谢。

Using dict.setdefault使用dict.setdefault

Ex:前任:

result = {}
for i in query_result:
    result.setdefault(i['ID'], []).append(i['ACCOUNT_NAME'])

you can use collections.defaultdict:您可以使用 collections.defaultdict:

from collections import defaultdict

result = defaultdict(list)
for d in query_result:
    result[d['ID']].append(d['ACCOUNT_NAME'])

qr_dict = [{'id': k, 'data': [{e} for e in v]} for k, v in result.items()]

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

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