Составьте список словарей, разбирающих каждый символ. Можно также разобрать каждую строку.
Существует большая вероятность найти пользовательскую библиотеку, которая уже выполняет эту функцию, но есть способ сделать это
import json
braces = []
dicts = []
dict_chars = []
for line in inp: # input is a builtin so renamed from input to inp
char = line.strip()
dict_chars.append(line)
if '{' == char:
braces.append('}')
elif '}' == char:
braces.pop()
elif len(braces) == 0 and dict_chars:
text = ''.join(dict_chars)
if text.strip():
dicts.append(json.loads(text))
dict_chars = []
Затем объединить словари в списке.
merged_dict = {}
for dct in dicts:
merged_dict.update(dct)
> print(merged_dict)
{u'a': {u'x': u'y', u'w': u'z'}, u'b': {u'z': u'l', u'v': u'w'}}
Вывести объединенный словарь в виде строки json с отступом.
merged_output = json.dumps(merged_dict, indent=4)