Объединение словарей со вложенностями
Имею 2 словаря с вложениями одинаковой глубины вложенности,
dict = [{'ABC': {'ever': 25, 'sis': 0.01}}, {'ABC': {'ever': 75, 'sis': 0.02}}]
dict1 = [{'ABC': {'ever': 25, 'te': 72}}, {'ABC': {'ever': 25, 'te': 74}}]
Просьба, подсказать, как можно универсально объединить их для получений следующего формата:
merge_dict = [{'ABC': {'ever': 25, 'sis': 0.01, 'te': 72}}, {'ABC': {'ever': 75, 'sis': 0.02, 'te': 74}}]
Спасибо!
Ответы (1 шт):
Автор решения: CrazyElf
→ Ссылка
Вероятно, можно проще, и не совсем универсально получилось, но вот так вроде работает (нужен Python >= 3.5):
dict1 = [{'ABC': {'ever': 25, 'sis': 0.01}}, {'ABC': {'ever': 75, 'sis': 0.02}}]
dict2 = [{'ABC': {'ever': 25, 'te': 72}}, {'ABC': {'ever': 25, 'te': 74}}]
merge_dict = [{k: {**d1[k], **d2[k]}} for d1,d2 in zip(dict1, dict2) for k in d1]
print(merge_dict)
Вывод:
[{'ABC': {'ever': 25, 'sis': 0.01, 'te': 72}}, {'ABC': {'ever': 25, 'sis': 0.02, 'te': 74}}]