Как я могу объединить два разных словаря python в один? - PullRequest
0 голосов
/ 09 июля 2020

У меня есть два словаря python, и я запишу в один файл json.

{"audio": [{"fs": "8000", "duration": "240"}]}

{"ref": [{"end": "115.63", "start": "111.33"}, {"end": "118.49", "start": " 117 "}]}

Я объединяю их следующим образом:

dict={}
dict["audio"]=[{"fs":"8000", "duration": "240"}]
dict1={"audio":dict["audio"]}
dict["ref"]={"ref": [{"end": "115.63", "start": "111.33"}, {"end": "118.49", "start": "117"}]}
dict2={"ref":dict["ref"]}
dict={"audio":dict["audio"]}, {"ref":dict["ref"]}

Когда я записываю в файл json, я получаю следующий результат:

with open("a.json", 'w') as fout:
    json.dump((dict), fout)

[ {"audio": [{"fs": "8000", "duration": "240"}] } , { "ref": {"ref": [{"end": "115.63", "start": "111.33"}, {"end": "118.49", "start": "117"}]}} ]

Я хочу получить вывод в виде одного словаря;

Требуемый вывод:

{"audio": [{"fs": "8000", "duration": "240"}], "ref": [{"start": "111.33", "end": "115.63"}, {"start": "117 "," end ":" 118.49 "}, {" start ":" 119.31 "," end ":" 122.02 "}]}

Я выделил жирным шрифтом разницу между двумя выводами выше. (Есть лишние «[]» и «{}»).

Ответы [ 2 ]

1 голос
/ 09 июля 2020

попробуйте это,

import json

audio = {"audio": [{"fs": "8000", "duration": "240"}]}
ref = {"ref": [{"end": "115.63", "start": "111.33"}, {"end": "118.49", "start": "117"}]}

json.dumps({**audio, **ref})

Python версия <3.6 </h2> from collections import OrderedDict audio = {"audio": [{"fs": "8000", "duration": "240"}]} ref = {"ref": [{"end": "115.63", "start": "111.33"}, {"end": "118.49", "start": "117"}]} json.dumps(OrderedDict({**audio, **ref}))

0 голосов
/ 09 июля 2020

Хотя я не уверен, что вы пытаетесь сделать, это может ответить на ваш вопрос, и, пожалуйста, воздержитесь от использования dict в качестве имени переменной, так как это ключевое слово в python.

import json
a={}
a["audio"]=[{"fs":"8000", "duration": "240"}]
a1={"audio":a["audio"]}
a["ref"]= [{"end": "115.63", "start": "111.33"}, {"end": "118.49", "start": "117"}]
a2={"ref":a["ref"]}
a={"audio":a["audio"], "ref":a["ref"]}
with open("a.json", 'w') as fout:
    json.dump(a, fout)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...