Python:从字典中提取条件信息



我正在使用python 3.5迭代字典。我正在尝试检查下面数据集中的某些条件,如果条件是不真实或没有数据来评估条件的情况,请返回消息。

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]['YOB'])

要获得每个人的出生年份。

但是,如果我运行

for name in data.items():
    print (name[1]["Salary"])

它给了我一个错误,因为数据并没有捕获每个人的薪水,就像并不是每个人都获得奖励一样。我怎么能这样做,或者仅针对以上某个门槛的人提取薪水,例如500000?

您可以使用列表理解来根据条件过滤列表的项目:

[ (k, v) for k, v in data.items() if "Salary" in v ]

您需要查看"薪金"是否在字典中,例如:

if "Salary" in name[1] and name[1]["Salary"]>500000:
   print(name)

最新更新