如何在Python中解析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

我是Python初学者,正在执行API请求并接收以下JSON:

{
    '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()为您进行解析。