Задать вопрос

Как обновлять словари с вложенными словарями?

У меня есть два словаря:
a = {'a' : {'a' : 'some value'}}
b = {'a' : {'b' : 'some_value'}}


Мне нужно обновить словарь a. На выходе должно быть подобное.
updated = {'a' : {'a' : 'some value', 'b' : 'some_value}}


Я знаю о методах update, или dict(a, **b), но мне нужно что бы сохранялись так же и вложенные данные.

Был бы рад получить ответ, или место куда стоит смотреть
  • Вопрос задан
  • 633 просмотра
Подписаться 2 Простой 6 комментариев
Помогут разобраться в теме Все курсы
  • Яндекс Практикум
    Python-разработчик
    10 месяцев
    Далее
  • Skillfactory
    Профессия Python-разработчик
    9 месяцев
    Далее
  • Нетология
    Fullstack-разработчик на Python + нейросети
    20 месяцев
    Далее
Решения вопроса 1
@stead Автор вопроса
from collections.abc import Mapping

    def __deep_update(source : dict, overrides : dict):
        for key, value in overrides.items():
            if isinstance(value, Mapping) and value:
                returned = __deep_update(source.get(key, {}), value)
                source[key] = returned
            else:
                source[key] = overrides[key]
        return source
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
dimonchik2013
@dimonchik2013
non progredi est regredi
Я знаю о методах update, или dict(a, **b), но мне нужно что бы сохранялись так же и вложенные данные.


ну, осталось узнать о методе a['a'] = b
Ответ написан
Комментировать
phaggi
@phaggi Куратор тега Python
лужу, паяю, ЭВМы починяю
a = {'a' : {'a' : 'some value'}}
b = {'a' : {'b' : 'some_value'}}
a['a'].update(b['a'])
print(a)
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы