Python 如何从json响应中输出特定数据?

Python 如何从json响应中输出特定数据?,python,json,Python,Json,我对在python中使用API是相当陌生的,我正在尝试创建一个系统来输出以前赛车比赛的数据。我已经向API发送了请求,但我很难让它只输出一条特定的数据(例如时间、位置)。当我只打印发送的原始JSON数据时,就会得到这个结果 { “MRData”:{ “赛马场”:{ “种族”:[ { “电路”:{ “地点”:{ “国家”:“西班牙”, “lat”:“41.57”, “地点”:“蒙特梅洛”, “长”:“2.26111” }, “circuitId”:“加泰罗尼亚”, “赛道名称”:“巴塞罗那加泰罗尼

我对在python中使用API是相当陌生的,我正在尝试创建一个系统来输出以前赛车比赛的数据。我已经向API发送了请求,但我很难让它只输出一条特定的数据(例如时间、位置)。当我只打印发送的原始JSON数据时,就会得到这个结果

{
“MRData”:{
“赛马场”:{
“种族”:[
{
“电路”:{
“地点”:{
“国家”:“西班牙”,
“lat”:“41.57”,
“地点”:“蒙特梅洛”,
“长”:“2.26111”
},
“circuitId”:“加泰罗尼亚”,
“赛道名称”:“巴塞罗那加泰罗尼亚赛道”,
“url”:”http://en.wikipedia.org/wiki/Circuit_de_Barcelona-Catalunya"
},
“日期”:“2020-08-16”,
“赛车名”:“西班牙大奖赛”,
“轮”:“6”,
“季节”:“2020年”,
“时间”:“13:10:00Z”,
“url”:”https://en.wikipedia.org/wiki/2020_Spanish_Grand_Prix"
}
],
“轮”:“6”,
“季节”:“2020”
},
“限制”:“30”,
“偏移量”:“0”,
“系列”:“f1”,
“总计”:“1”,
“url”:”http://ergast.com/api/f1/2020/6.json",
“xmlns”:”http://ergast.com/mrd/1.4"
}
}
为了掌握API,我只是想输出一个特定种族的简单数据,一旦我能做到这一点,我就能够放大它并输出各种数据。我假设它只需键入
print(data['time'])
(如下所示)就可以了,但我收到一条错误消息:

键错误:“时间”

我的源代码:

import requests

response = requests.get("http://ergast.com/api/f1/2020/6.json")

data = response.json()


print (data["time"])

感谢您的帮助

data['time']
如果您有一个平面字典,那么它就可以工作,但是您有一个嵌套的dicts/list结构,因此:

data["MRData"]["RaceTable"]["Races"][0]["time"]
data[“MRData”]
返回另一个dict,其中包含一个键
“RaceTable”
。这个键的值也是一个字典,它有一个键
“Races”
。这个值是一个种族列表,其中只有一个种族。比赛同样是有时间键的dicts,就像这样

import json


data = """{
   "MRData":{
      "xmlns":"http://ergast.com/mrd/1.4",
      "series":"f1",
      "url":"http://ergast.com/api/f1/2020/6.json",
      "limit":"30",
      "offset":"0",
      "total":"1",
      "RaceTable":{
         "season":"2020",
         "round":"6",
         "Races":[
            {
               "season":"2020",
               "round":"6",
               "url":"https://en.wikipedia.org/wiki/2020_Spanish_Grand_Prix",
               "raceName":"Spanish Grand Prix",
               "Circuit":{
                  "circuitId":"catalunya",
                  "url":"http://en.wikipedia.org/wiki/Circuit_de_Barcelona-Catalunya",
                  "circuitName":"Circuit de Barcelona-Catalunya",
                  "Location":{
                     "lat":"41.57",
                     "long":"2.26111",
                     "locality":"Montmeló",
                     "country":"Spain"
                  }
               },
               "date":"2020-08-16",
               "time":"13:10:00Z"
            }
         ]
      }
   }
}"""

jsonData = json.loads(data)
Races是一个数组,在本例中只有一个种族,因此您可以将其设计为
[“种族”][0]

print(jsonData["MRData"]["RaceTable"]["Races"][0]["time"])