Python no puede acceder al diccionario

Obtención de TypeError: string indices must be integers cuando se intenta acceder a un diccionario en Python. He intentado usar json.loads(r2) produce "TypeError: the JSON object must be str, bytes or bytearray, not dict"

Ni siquiera estoy seguro de si estoy en el camino correcto aquí, todo lo que debo hacer es obtener el JSON que parece estar en una cadena larga en algo como x['SomeKey'] y el valor en esas teclas usando iteritems() o similar.

 r = requests.get(url, headers=headers) r2 = r.json() seq = json.dumps(r2) print(seq['remotecontrol_id']) 

r.json() ya devuelve un diccionario, así que no estoy seguro de por qué le pasas r2 a json.dumps que devuelve una cadena (de ahí la s ). El mensaje de error que recibió incluso sugiere que (“TypeError: el objeto JSON debe ser str, bytes o bytearray, no dict “)

Tu código debe ser

 r = requests.get(url, headers=headers) r2 = r.json() print(r2['remotecontrol_id']) 

El problema es que los dumps método convierten un dictionary de python en una string , por lo tanto, en la línea seq['remote...'] está accediendo a una string . Debes acceder a la variable r2 lugar de seq

Ok, ya lo entendí, una especie de …

para i en r2:

print (r2 [‘stuff’] [0] [‘someval1’]) print (r2 [‘stuff’] [1] [‘asomeval2’])

De todos modos, hits funciona.

Gracias por todos los buenos consejos!