Python字典打印特定值

时间:2018-11-07 13:10:32

标签: python dictionary

我有一个带有两个字典的变量:

dic = {"id": 2125, "role": "Policy", "visible": "Users", "name": "Peering", "phone": "", "email": "peering@fb.com"}, {"id": 2568, "role": "NOC", "visible": "Users", "name": "Network Operations", "phone": "+1 650 308 7200", "email": "noc@fb.com"}

我要打印属于“角色” NOC的电子邮件地址!

我可以使用

for key in dic:
    if key['role']=='NOC':
       print(key['email'])

但是我不想使用if key ['role'] =='NOC':。有人有更好的主意吗?打印属于特定角色的电子邮件地址。

4 个答案:

答案 0 :(得分:0)

另一种方法是使用pandas

import pandas as pd

df = pd.DataFrame(list(dic))
email = df.loc[df['role'] == 'NOC', 'email']

答案 1 :(得分:0)

您的问题没有任何意义,但是要在没有上述代码的情况下达到您的价值,请输入:

for eachDict in dic:
    lst = eachDict.values()
    if 'NOC' in lst:
        print eachDict['email']

答案 2 :(得分:0)

在这种简单情况下,您可以创建一个字典,其键本身就是角色:

> roles = {d['role']:d for d in dic}
> roles['NOC']['email']

请注意,您仍在循环浏览所有字典项以创建新项。

答案 3 :(得分:0)

您可以使用filter

for entry in filter(lambda x: x['role'] == 'NOC', dic):
    print(entry['email'])

比较主义者还在那里,但是您的if声明不见了。