我有一个带有两个字典的变量:
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':。有人有更好的主意吗?打印属于特定角色的电子邮件地址。
答案 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
声明不见了。