从请求库解析JSON响应的最佳方法是什么?

问题:从请求库解析JSON响应的最佳方法是什么?

我正在使用python requests模块将RESTful GET发送到服务器,对此我得到了JSON响应。JSON响应基本上只是列表的列表。

强制对本地Python对象进行响应的最佳方法是什么,以便我可以使用进行迭代或打印出来pprint

I’m using the python requests module to send a RESTful GET to a server, for which I get a response in JSON. The JSON response is basically just a list of lists.

What’s the best way to coerce the response to a native Python object so I can either iterate or print it out using pprint?


回答 0

您可以使用json.loads

import json
import requests

response = requests.get(...)
json_data = json.loads(response.text)

这会将给定的字符串转换为字典,从而使您可以轻松地在代码中访问JSON数据。

或者,您可以使用@Martijn的有用建议以及投票较高的答案response.json()

You can use json.loads:

import json
import requests

response = requests.get(...)
json_data = json.loads(response.text)

This converts a given string into a dictionary which allows you to access your JSON data easily within your code.

Or you can use @Martijn’s helpful suggestion, and the higher voted answer, response.json().


回答 1

由于您正在使用requests,因此您应该使用响应的json方法。

import requests

response = requests.get(...)
data = response.json()

自动检测要使用的解码器

Since you’re using requests, you should use the response’s json method.

import requests

response = requests.get(...)
data = response.json()

It autodetects which decoder to use.