2017-08-31 40 views
1

我想遍歷字典並訪問唯一鍵值。訪問不總是出現在多個字典中的密鑰

for k,v in dict.items(): 
    print v['maidenName'] 

,但沒有運氣:例如,我想打印「maidenName」

{'key1': {'firstName': 'bob', 
      'lastName': 'smith', 
      'middleName': 'joe'}, 
'key2': {'firstName': 'jane', 
      'lastName': 'jackson', 
      'middleName': 'marie', 
      'maidenName': 'sanchez'}} 

通常的價值,我會通過字典迭代。

+0

「'maidenName':'sanchez'」不屬於某個鍵。這是對的嗎? –

+0

這些大括號不均衡。這不是一個有效的詞典,如果我們不能說出你的數據結構是如何構建的,我們不能告訴你如何訪問它的數據。 – user2357112

+0

避免使用'dict'作爲變量的名稱,它會影響(clobbers)內建的'dict',使其在以下代碼中無法使用 – Cireo

回答

3

該代碼會引發錯誤,因爲maidenName在第一個中不存在。 您可以使用dict.get()避免這種情況:

for k,v in dict.items(): 
    print v.get('maidenName') 

您還可以使用去打印不姓存在一個信息,即摹:

for k,v in dict.items(): 
    print v.get('maidenName', '<no maiden name given>') 
+0

不,如果查看數據,'maidenName'不存在於值字典中在所有。 –

+0

@折速我同意,但我認爲這是一個錯字 – PRMoureu

+2

@PRMoureu我感謝您的幫助。這回答了我的問題。 –

2

考慮快譯通是:

>>> dict = {'key1': {'firstName': 'bob', 
...     'lastName': 'smith', 
...     'middleName': 'joe'}, 
...   'key2': {'firstName': 'jane', 
...     'lastName': 'jackson', 
...     'middleName': 'marie'}, 
...   'maidenName': 'sanchez'} 

它應該工作:

>>> print dict['maidenName'] 
sanchez 

或者如果您不能確定鍵存在或不

>>> dict.get('maidenName','default_return_data') 
'sanchez' 

以上將返回default_r eturn_data if maidenName key does 不是存在於字典中。

相關問題