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

Как установить значение для вложенного словаря, имея только его «путь»?

Под словом "путь", я имею ввиду что то такое:
path = 'dict.dict2.value'

Я хочу использовать этот путь что бы обновить значение моего словаря:
d = {
        'dict' : {
            'dict2': {
                'value' : 10
            }
        }
    }

Что бы было на подобии такого:
d['dict.dict2.value'] = 100

Результат:
d = {
        'dict' : {
            'dict2': {
                'value' : 10
            }
        }
    }


Как можно сделать такое? Видел что можно сделать с обычными, но как с вложенными словарями?
  • Вопрос задан
  • 102 просмотра
Подписаться 1 Простой Комментировать
Помогут разобраться в теме Все курсы
  • Нетология
    Python-разработчик: расширенный курс + нейросети
    12 месяцев
    Далее
  • Академия Эдюсон
    Python-разработчик
    9 месяцев
    Далее
  • ProductStar × РБК
    Профессия: Python-разработчик + ИИ
    8 месяцев
    Далее
Пригласить эксперта
Ответы на вопрос 2
Lord_of_Rings
@Lord_of_Rings Куратор тега Python
Northern Strider
d['dict']['dict2']['value']
Ответ написан
0xD34F
@0xD34F
def set_nested(obj, path, val):
  keys = path.split('.')

  for n in keys[:-1]:
    obj = obj.setdefault(n, {})

  obj[keys[-1]] = val


set_nested(d, path, 666)
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы
ITK academy Краснодар
от 220 000 до 300 000 ₽
ITK academy Краснодар
от 75 000 ₽
DimaTech Ltd Краснодар
от 140 000 до 140 000 ₽