2017-05-08 158 views
0

裏面的一個關鍵我有地方 -無法搜索Python字典

import collections 
tags = [ 
    { 
     "Key": "Name", 
     "Value": "Peter" 
    }, 
    { 
     "Key": "Email", 
     "Value": "[email protected]" 

    }, 
    { 
     "Key": "City", 
     "Value": "Paris" 

    }, 
] 

IM的下方字典試圖尋找出Email地址的值,但即時通訊無法。

請提出一個邏輯,我在tags找到這個值OUT-

+0

你試過'tags.get(「電子郵件」)'? – quantik

+5

@quantik你自己試過了嗎? – vaultah

+0

@quantik:不,這不起作用.. –

回答

4

迭代,檢查'Email'每個tag'Key'。找到後,獲取'Value'

for tag in tags: 
    if tag['Key'] == 'Email': 
     print('Email is', tag['Value']) 
     break 
+0

即使沒有「休息」部分,這也是完美的工作。非常感謝。 –

3

試試這個:

[dic['Value'] for dic in tags if dic['Key'] =="Email"] 

輸出:

['[email protected]'] 

更新多個值:

假設您有:

tags = [ 
    { 
     "Key": "Name", 
     "Value": "Peter" 
    }, 
    { 
     "Key": "Email", 
     "Value": "[email protected]" 

    }, 
    { 
     "Key": "Email", 
     "Value": "[email protected]" 

    }, 

    { 
     "Key": "City", 
     "Value": "Paris" 

    }, 
] 

輸出將是:

['[email protected]', '[email protected]'] 
+0

微小,是的,這也是偉大的'print([dic ['Value'] for dic in tags if'dic ['Key'] ==「Email」])' –

+0

@AlanJebakumar是的,它會找到所有值「Key ==」電子郵件「列表」 –