Quelle est la meilleure façon d'analyser une réponse JSON à partir de la demande de la bibliothèque?
Je suis en utilisant le python demande
module pour envoyer un Réparateur arriver à un serveur, pour lequel j'ai obtenu une réponse en JSON. La réponse JSON est fondamentalement juste une liste de listes.
Quelle est la meilleure façon de forcer la réponse à un natif objet Python donc je peut soit effectuer une itération ou de les imprimer à l'aide de pprint
?
Vous devez vous connecter pour publier un commentaire.
Vous pouvez utiliser
json.charges
:Cette fonction convertit une chaîne de caractères dans un dictionnaire qui vous permet d'accéder à vos données JSON facilement dans votre code.
str()
. D'autre part les données unicode n'est pas mauvais d'avoir autour (en préparation pour le futur).response.json()
, comme il va faire un mieux de déterminer l'encodage utilisé. (Avertissement, j'ai écrit certains de ce code).response.text()
?requests.compat.json.loads(resp_text)
json
module. Lerequests.compat
module est là pour jeter des ponts entre différentes versions de Python etrequests.compat.json
est la même chose quejson
sur pratiquement tous les systèmes que vous voulez bien sur.Depuis que vous utilisez
requests
, vous devez utiliser la réponse de lajson
méthode.Il autodétecte qui décodeur à utiliser.
pip install requests
si, au lieu d'à l'aide de paquet deb.data
est-il une liste de liste ou un dictionnaire.[{"a": {...}}]
,data
est une liste, aveclist[0] == {'a': {...}}
. Si la réponse est{"a": "b", "c": "d"}
,data
est un dict. Ne fait que répondre à votre question?data = response.json
? Sinon, je reçoisTypeError: 'dict' object is not callable
>>> import requests >>> r = requests.get('http://httpbin.org/get') >>> r.json <bound method Response.json of <Response [200]>> >>> r.json() {'args': {}, ...}