2015-12-02 2 views
0

Я пытал добавить атрибут к ранее существовавшему объекту в словаре:Добавить атрибут в существующий объект в Python словаре

key = 'key1' 
dictObj = {} 
dictObj[key] = "hello world!" 

#attempt 236 (j/k) 
dictObj[key]["property2"] = "value2" ###'str' object does not support item assignment 

#another attempt 
setattr(dictObj[key], 'property2', 'value2') ###'dict' object has no attribute 'property2' 

#successful attempt that I did not like 
dictObj[key] = {'property':'value', 'property2':''} ###instantiating the dict object with all properties defined seemed wrong... 
#this did allow for the following to work 
dictObj[key]["property2"] = "value2" 

Я пробовал различные комбинации (в то числе SetAttr, и т.д.) и не имеющей много удачи.

Как только я добавил элемент в словарь, как добавить дополнительные пары ключ/значение к этому элементу (не добавлять в словарь другой элемент).

ответ

1

Как я писал этот вопрос, я осознал свою ошибку.

key = 'key1' 
dictObj = {} 
dictObj[key] = {} #here is where the mistake was 

dictObj[key]["property2"] = "value2" 

Проблема, кажется, что я инстанцирование объекта с ключом «ключ1» в виде строки вместо словаря. Таким образом, я не смог добавить ключ к строке. Это была одна из многих проблем, с которыми я столкнулся, пытаясь разобраться в этой простой проблеме. Я также столкнулся с KeyErrors, когда немного изменил код.

Смежные вопросы