Есть ли стандартная библиотека которая сможет обновить вложенные словари?
Есть ли стандартная библиотека, которая сможет обновить вложенные словари:
old_dict = {'a': {'b': 1}, 'c': {'d': 2}}
new_dict = {'a': {'f': 3}, 'g': {'h': 4}}
old_dict.update(**new_dict)
print(old_dict) # Выведет {'a': {'f': 3}, 'c': {'d': 2}, 'g': {'h': 4}}
# Желал увидеть {'a': {'b': 1, 'f': 3}, 'c': {'d': 2}, 'e': {'f': 3}, 'g': {'h': 4}}
Или единственный способ - это мне рекурсивно бежать по ключам и значениям и искать чего не хватает и добавлять?
Ответы (1 шт):
Автор решения: strawdog
→ Ссылка
import pandas as pd
old_dict = {'a': {'b': 1}, 'c': {'d': 2}}
new_dict = {'a': {'f': 3}, 'g': {'h': 4}}
df1 = pd.DataFrame(old_dict)
df2 = pd.DataFrame(new_dict)
res = pd.concat([df1, df2]).apply(lambda x: pd.Series(x).dropna().to_dict()).to_dict()
res:
{'a': {'b': 1.0, 'f': 3.0}, 'c': {'d': 2.0}, 'g': {'h': 4.0}}