2016-08-19 131 views
0

我正在向字典中添加成員的過程,以獲取將被處理以創建json對象的相同鍵動態。將成員添加到Python中的字典

例如示例代碼

data_Dict = dict() 
data_Dict['1'] = {'Key': '1111',} 
data_Dict.setdefault('1', []).append({ 'Val':'Name'}) 

我正在錯誤 AttributeError的: '字典' 對象沒有屬性 '追加'

任何幫助表示讚賞。

回答

1

你可以簡單地這樣做:

data_Dict = dict() 
data_Dict['1'] = {'Key': '1111'} 
data_Dict['1']['Val'] = 'Name'  

這會給你這樣的:

>>> print data_Dict 
{'1': {'Val': 'Name', 'Key': '1111'}} 
1

我想.update會做你要找什麼

data_Dict = dict() 
data_Dict['1'] = {'Key': '1111'} 
data_Dict['1'].update({'Val':'Name'}) 
print(data_Dict) 
# {'1': {'Val': 'Name', 'Key': '1111'}} 
+2

我不知道你想在這裏更新。可能相當昂貴。只是'data_dict.setdefault('1',{})['Val'] ='名稱'可能會更好。我不明白這個問題的傳入數據。 –

+0

@ Two-BitAlchemist爲什麼人們使用'Dict.setdefault'?不是下標('mydict ['key'] ='value'')標準嗎? – u8y7541

+0

@ u8y7541就像我已經說過的,我根據OP的例子並不真正瞭解數據來自何處。 'setdefault'覆蓋密鑰可能已經或可能不在字典中的情況。 –

-1

我不明白的地方在於dict.setdefault進入這個...解決方案非常簡單。

當您撥打data_Dict['1']時,您會在詞典中獲得分配給'1'的元素。這是你想添加'Val': 'Name'的字典。從邏輯上講,你應該能夠通過鍵入作爲分配'Val': 'Name'它:

data_Dict['1']['Val'] = 'Name'

這裏的Python如何解釋。

What is assigned to '1' in the dictionary  Key named 'Value' in data_Dict['1'] 
        |           | 
        |           | 
        |           | 
       data_Dict['1']         ['Value'] 



     Assign to      String (Name) 
      |        | 
      |        | 
      |        | 
      =        'Name'