如何在Python中解析JSON?
我是Python初学者,正在执行API请求并接收以下JSON:如何在Python中解析JSON?,python,json,Python,Json,我是Python初学者,正在执行API请求并接收以下JSON: { 'data': { 'timelines': [{ 'timestep': 'current', 'startTime': '2021-05-29T14:46:00Z', 'endTime': '2021-05-29T14:46:00Z', 'intervals': [{ 'st
{
'data': {
'timelines': [{
'timestep': 'current',
'startTime': '2021-05-29T14:46:00Z',
'endTime': '2021-05-29T14:46:00Z',
'intervals': [{
'startTime': '2021-05-29T14:46:00Z',
'values': {
'temperature': 21.92
}
}]
}]
}
}
我想打印温度,我读到我必须解析JSON才能使用其中的日期,所以我这样做:
response = requests.request("GET", url, headers=headers, params=querystring)
jsonunparsed = response.json()
parsed = json.loads(jsonunparsed)
我想现在有一本字典,但当我运行这个
print(parsed)
我只有一把钥匙,那就是“数据”
最后,我决定对上面的所有内容进行注释,并运行下面的代码来打印温度
response_json = response.json()
print(response_json['data']['timelines'][0]['intervals'][0]['values']['temperature'])
所以我的问题是,解析json不是必须的吗?为什么工作是我的第二选择?我什么时候应该使用loads()解析json,什么时候应该直接使用它进行操作?每种选择的优缺点是什么?如何使用解析的json检索温度
谢谢response.json()
已经是一个解析过的json-请求
为您执行,因此无需使用json.loads()
处理字符串时使用json.loads()
,如:
unparsedJSON = "{'key': 'value'}"
parsedJSON = json.loads(unparsedJSON)
这将把字符串(unparsedJSON
)转换成字典
如果您要使用
response.text
而不是response.json()
,那么您可以使用json.loads()
,但由于请求已经可以为您完成,因此没有理由这样做。但是,如果您要这样做,它将如下所示:
unparsedJSON = response.text
parsedJSON = json.loads(unparsedJSON)
json()已经将响应对象转换(或解析)为json的等效Python对象(字典),因此您不需要json.loads(jsonunparsed)调用,只要它是有效的json。否则它将抛出异常
jsonunparsed = response.json()
parsed = json.loads(jsonunparsed)
所以你也可以这样写
jsonparsed = response.json()
print(jsonparsed['data']['timelines'][0]['intervals'][0]['values']['temperature'])
json()为您进行解析。