Désolé les gars, je n'ai pas pu trouver la réponse satisfaisante pour imprimer une partie de la réponse JSON. Quelqu'un peut m'aider ici s'il vous plaît:
import json
import requests
import pprint
response = requests.get('<api endpoing>')
json_data = response.json()
print(json.dumps(json_data, indent=4, sort_keys=True))
Json réponse serait
{
"Value1": "SomeValue",
"data": {
"subval1": false,
"subval2": "0a4",
"subval3": "",
"subval4": "Click h!",
"subval5": "1002",
"subval6": "932",
"subval7": "i2",
"subval8": 250,
"subval9": 0,
"subval10": 1,
"subval11": 3,
"subval12": 1,
"subval13": "<!>",
"subval14": "",
"subval15": "Click !!",
"subval16": "",
"subval17": 300
},
"error": true,
"message": "Success",
"status": 200
}
Maintenant, je voudrais parcourir et imprimer uniquement les "données": valeurs. Je ferai ce qui suit
data = json.loads(json_data)
data_set = (data['data'])
print(data_set)
Mais l'erreur im obtenir: TypeError: l'objet JSON doit être str, pas 'dict'
Vous n'avez pas besoin de json.loads(json_data)
car c'est déjà un dict python, il vous suffit de le sortir directement. Et produire une chaîne json à partir d’un dict est le travail de json.dumps()
:
json.dumps(json_data["data"])
En fait, la méthode json()
renvoie un objet json, vous n'avez donc pas besoin d'utiliser json.loads
Ou vous pouvez utiliser
r=requests.get("")
print json.loads(r.content)
Voir plus de détails dans Contenu de la réponse JSON .