@stead

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

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

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

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

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


Как можно сделать такое? Видел что можно сделать с обычными, но как с вложенными словарями?
  • Вопрос задан
  • 88 просмотров
Пригласить эксперта
Ответы на вопрос 2
Lord_of_Rings
@Lord_of_Rings
Python developer
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)
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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