首页 > 解决方案 > 从满足某些条件的字典中返回单个值

问题描述

我有一本这样的字典:

x = {
   "Student": [
       {
        "Student Details": {
                    "name": "Alex",
                    "class": "Biology",
                    "gender": "male",
                         },
        "Nationality": "",
        "Test Score": 10.0,
        "Exam Score": 70.0,
                
        },
              ],
    }

如果学生详细信息嵌套字典包含键名称、班级和性别,我想从该字典返回考试成绩。

示例输出应该是,如果学生详细信息具有名称、班级和性别等标签,则应返回考试分数为 70.0

我已经尝试过了,但不确定它是否正确

d = ('name','class','gender')
for k,v in x.items():
    if k == 'Student Details':
        if set(d).issubset(v):
                print('yes, this student details key has tags as names, class and gender')
    print(x['Exam Score'])

标签: pythonlistdictionary

解决方案


一个简单的解决方案,假设数据的结构不会改变:

expected_details = ['name','class','gender']
if all([field in expected_details for field in data["Student"][0]["Student Details"].keys()]):
    print(data["Student"][0]['Exam Score'])

这使:

70.0

推荐阅读