首页 > 解决方案 > 如何读取多个json值?

问题描述

我有以下 json 输出:

{
  "status" : "success",
  "data" : {
    "class" : "4A",
    "students" : [
      {
        "name" : "Peter",
        "lastname" : "Henderson",
        "grades" : [
          {
            "subject" : "math",
            "score" : "A"
          },
          { 
            "subject" : "english",
            "score" : "B"
          }
        ]
      },
      {
        "name" : "Nick",
        "lastname" : "Simons",
        "grades" : [
          {
            "subject" : "math",
            "score" : "B"
          },
          {
            "subject" : "english",
            "score" : "C"
          }
        ]
      }
    ]
  }
}

我不知道如何为每个学生打印所有成绩。

我假设您需要一个 for 循环来遍历所有学生,然后再进行一个 for 循环来检查他们的所有成绩,但是我在 python 中找不到此语法。

希望有人知道如何解决这个问题,谢谢你的时间!

标签: pythonjson

解决方案


如果您使用以下代码,response则成为您的json

data = response['data']['students']

for student in data:
    print('{} {}:'.format(student['name'], student['lastname']))
    for grade in student['grades']:
        print('\t{} - {}'.format(grade['subject'], grade['score']))

这就是你会得到的:

Peter Henderson:
        math - A
        english - B
Nick Simons:
        math - B
        english - C

推荐阅读