Страницы

Поиск по вопросам

воскресенье, 9 февраля 2020 г.

Автоматизация добавления вложенных словарей в словарь

#python #python_3x #словари


Подскажите пожалуйста, как работает добавление в словари?

Например, есть пустой словарь:

b = {}


Я хочу добавить, 

b['id']['type'] = 5


Получаю ошибку:


Traceback (most recent call last):
  File "", line 1, in 
    b['id']['type'] = 5
KeyError: 'id'



Может есть какой-то другой способ записи, кроме:

b['id'] = {'type': 5}

    


Ответы

Ответ 1



Используйте defaultdict: from collections import defaultdict b = defaultdict(dict) b['id']['type'] = 5 print(b) # defaultdict(dict, {'id': {'type': 5}}) Тут вы указываете, что создаете словарь, каждое значение которого по-умолчанию - пустой словарь.

Ответ 2



Для создания новых значений с глубокой степенью вложенности можно воспользоваться модулем dpath: import dpath # pip install dpath b = {} dpath.util.new(b, '/id/type', 5) результат: In [79]: b Out[79]: {'id': {'type': 5}} добавляем еще один вложенный словарь: dpath.util.new(b, '/id/sub1/sub2/sub3/val', [1,2,3]) результат: In [81]: b Out[81]: {'id': {'type': 5, 'sub1': {'sub2': {'sub3': {'val': [1, 2, 3]}}}}}

Комментариев нет:

Отправить комментарий