Вложенный словарь из Django QuerySet - PullRequest
1 голос
/ 03 февраля 2020

Я застрял в создании вложенного словаря из Django QuerySet Мой код:

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

Я получил результат из кода, указанного выше:

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

Мне нужен результат как следующий список словарей:

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

что не так делаю я делаю пожалуйста помогите заранее.

Ответы [ 2 ]

1 голос
/ 03 февраля 2020

Использование dict.setdefault

Пример:

result = {}
for i in query_result:
    result.setdefault(i['ID'], []).append(i['ACCOUNT_NAME'])
0 голосов
/ 03 февраля 2020

вы можете использовать collection.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()]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...