Собрать json файл из нескольких словарей и списков
Необходимо собрать json файл из нескольких словарей и списков, дабы не плодить под каждую сущность отдельный файл с данными. Возможно ли такое? json.dumps отлично делает такие файлы, но с одной сущностью (словарем или файлом).
Попробовал банальную конструкцию, не сработало.
import json
capitals = {
"Россия": "Москва",
"Беларусь": "Минск",
"Казахстан": "Нур-Султан"
}
capitals2 = {
"Россия": "Москва",
"Беларусь": "Минск",
"Казахстан": "Нур-Султан"
}
capitals3 = list('Минск', 'Москва', 'Нур-Султан')
capitals_json = json.dumps(capitals, capitals2, capitals3 )
with open("capitals.json", "w") as my_file:
my_file.write(capitals_json)
И если так можно сделать, то сможет ли программа работать с ними?
Что бы в итоге я мог получить:
{capitals = {
"Россия": "Москва",
"Беларусь": "Минск",
"Казахстан": "Нур-Султан"
}
capitals2 = {
"Россия": "Москва",
"Беларусь": "Минск",
"Казахстан": "Нур-Султан"
}
capitals3 = list('Минск', 'Москва', 'Нур-Султан')}
И вызывать каждую сущность из файла по имени.
Ответы (1 шт):
Автор решения: Стас
→ Ссылка
Возможное решение:
Можно использовать keyword arguments и давать каждому объекту имя, которое будет отображено в json:
def dumpAll(**kwargs):
return json.dumps(kwargs)
print(dumpAll(capitals=capitals, capitals2=capitals2, capitals3=capitals3))
Пример:
[Input]:
foo = {
"a" : 2,
"b" : 3
}
bar = ["cool_element", "even_cooler_element"]
print(dumpAll(foo=foo, spam=bar))
Output:
{
"foo":{
"a":2,
"b":3
},
"spam":[
"cool_element",
"even_cooler_element"
]
}