Python:从字典中提取条件信息
我正在使用Python3.5对字典进行迭代。我试图在下面的数据集中检查某些条件,如果条件不真实或者没有数据来评估条件,则返回消息Python:从字典中提取条件信息,python,python-3.x,dictionary,Python,Python 3.x,Dictionary,我正在使用Python3.5对字典进行迭代。我试图在下面的数据集中检查某些条件,如果条件不真实或者没有数据来评估条件,则返回消息 data = { "Barry": { "Title": "CTO", "YOB": 1980, "Direct_Reports": ["Hannah"], "Awards": ["Tech Innovator",
data = {
"Barry": {
"Title": "CTO",
"YOB": 1980,
"Direct_Reports": ["Hannah"],
"Awards": ["Tech Innovator", "Best CTO"],
"Salary": 1200000
},
"Joe": {
"Title": "Data Scientist",
"YOB": 1981,
"Salary": 200000
},
"Bill": {
"Title": "Senior Software Engineer",
"YOB": 1993,
"Direct_Reports": [],
"Awards": ["Employee of the Month"]
},
"Jose": {
"Job": "Full Stack Engineer",
"YOB": 1996,
"Direct_Reports": ["John", "Hannah"]
},
}
例如,我可以迭代字典以打印列出的人的姓名:
for name in data.keys():
print (name)
或
为了得到每个人的出生年份
但是如果我跑
for name in data.items():
print (name[1]["Salary"])
这给了我一个错误,因为数据没有记录每个人的工资,就像不是每个人都收到过奖励一样。
我如何才能做到这一点,或者仅为超过某个阈值(例如500000)的人提取工资?您可以使用列表理解功能根据条件筛选列表项:
[(k,v)表示数据中的k,v.items()如果v中的“Salary”]
您可以使用列表理解根据条件筛选列表中的项目:
[(k,v)表示数据项中的k,v(),如果v中有“Salary”
您需要查看字典中是否有“Salary”,如:
if "Salary" in name[1] and name[1]["Salary"]>500000:
print(name)
您需要查看字典中是否有“工资”,如:
if "Salary" in name[1] and name[1]["Salary"]>500000:
print(name)