Как добавить данные в словарь с новым ключом?
Есть словарь. В него пытаюсь добавить примерно похожие данные, но с разными ключами:
d = {}
d['category', 'key:911', 'title:lk'] = {'#41': {'title': 'абетка', 'description': 'нет описания', 'price': '100'}}
d['category', 'key:911', 'title:lk'] = {'#42': {'title': 'абетка', 'description': 'нет описания', 'price': '100'}}
В первой строке у меня в качестве ключа #41, в другой строке ключ на единицу больше, чем предыдущий, а именно #42.
Как я могу добавить данные, чтобы после указания #41 в словаре, я мог получить {'title': 'абетка', 'description': 'нет описания', 'price': '100'}} и при указании #42 уже другие данные, Примечание: данные были написаны в качестве примера, чтобы решить текущую проблему.
При попытке вывести словарь c необходимыми данными с помощью кода:
products_keys = d['category', 'key:911', 'title:lk']
print(products_keys)
Получаю только:
{'#42': {'title': 'абетка', 'description': 'нет описания', 'price': '100'}}
Ответы (2 шт):
В данной строке d['category', 'key:911', 'title:lk'] вы в словарь d записываете ключ ['category', 'key:911', 'title:lk'], следовательно если вы будете в этот ключ добавлять значения ключа, то сохранится последний из записанных значений в ключе. Как пример, вы можете записать пустой список в значение ключа и добавлять в список значения.
d = {}
d['category', 'key:911', 'title:lk'] = []
d['category', 'key:911', 'title:lk'].append({'#41': {'title': 'абетка', 'description': 'нет описания', 'price': '100'}})
d['category', 'key:911', 'title:lk'].append({'#40': {'title': 'абетка', 'description': 'нет описания', 'price': '100'}})
for i in d['category', 'key:911', 'title:lk']:
print(i)
Можно через словарь:
d = {}
d['category', 'key:911', 'title:lk'] = {}
d['category', 'key:911', 'title:lk'].update([('#41', {'title': 'абетка', 'description': 'нет описания', 'price': '100'})])
d['category', 'key:911', 'title:lk'].update([('#40', {'title': 'абетка', 'description': 'нет описания', 'price': '100'})])
print(d['category', 'key:911', 'title:lk']['#40'])
Судя по уточняющему вопросу в комментариях, вам может лучше подойти такое решение:
category = 'category', 'key:911', 'title:lk'
d = {} # словарь в который будут применены изменения
d[category] = {}
d[category]['#41'] = {'title': 'абетка', 'description': 'нет описания', 'price': '100'}
d[category]['#42'] = {'title': 'абетка', 'description': 'нет описания', 'price': '100'}