2017-05-08 115 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 ==”电子邮件“列表” –