Как преобразовать список dict в json в python? - PullRequest
1 голос
/ 07 апреля 2020

У меня есть список JSON, и я хочу затем преобразовать его в один JSON, я пробовал с json.dumps, но в результате все равно выдается список JSON.

"response":[{"sent":46},{"drafts":2},{"completed":48},{"pending":1}]

Я хочу это в форме

"response":{"sent":46,"drafts":2,"completed":48,"pending":1}

Можете ли вы помочь мне с этим?

Ответы [ 2 ]

0 голосов
/ 08 апреля 2020

вы можете использовать

json_obj = {"response":[{"sent":46},{"drafts":2},{"completed":48},{"pending":1}]}
{k: {list(i.keys())[0]: list(i.values())[0] for i in v} for k, v in json_obj.items()}

, который будет выводить

{'response': {'sent': 46, 'drafts': 2, 'completed': 48, 'pending': 1}}
0 голосов
/ 07 апреля 2020

вы можете использовать:

from itertools import chain
r = {"response" :[{"sent":46},{"drafts":2},{"completed":48},{"pending":1}]}


r['response'] = dict(chain(*map(dict.items, r['response'])))
# same with:
# r['response'] = dict(chain.from_iterable(map(dict.items, r['response'])))
r

вывод:

{'response': {'sent': 46, 'drafts': 2, 'completed': 48, 'pending': 1}}

или вы можете использовать словарь понимания:

r['response'] = {k: v for d in r['response'] for k, v in d.items()}

вывод:

{'response': {'sent': 46, 'drafts': 2, 'completed': 48, 'pending': 1}}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...