Lo siento chicos, no pude encontrar la respuesta satisfactoria para imprimir parte de la respuesta json. Alguien me puede ayudar aquí por favor:
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))La respuesta de Json sería
{ "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 }Ahora, me gustaría recorrer e imprimir solo los "datos": valores. voy a hacer lo siguiente
data = json.loads(json_data) data_set = (data['data']) print(data_set)Pero el error que estoy recibiendo: TypeError: el objeto JSON debe ser str, no 'dict'
No necesita json.loads(json_data) ya que ya es un dictado de Python, solo necesita generar este dictado directamente. Y generar una cadena json desde un dictado es el trabajo de json.dumps() :
json.dumps(json_data["data"])En realidad, el método json() devuelve un objeto json , por lo que no necesita usar json.loads
O puedes usar
r=requests.get("") print json.loads(r.content)Ver más detalles de Contenido de respuesta JSON .