Convertir objetos JSON en un diccionario en Python

Básicamente tengo una cadena de datos con objetos en los objetos.

{"id":"XXXX", "name": "xyz", "user" : { "id": "XXXX", "username":"XYZ", group:{"id": "XXXX"}}}. You can check this format using "http://chris.photobooks.com/json/default.html" site. 

No es mi requisito convertir esto a objetos JSON como un diccionario. He intentado a continuación

 import json JSON_Datalist = '{"id":"XXXX", "name": "xyz", "user" : { "id": "XXXX", "username":"XYZ", group:{"id": "XXXX"}}}' the_dict = json.loads(JSON_DataList) 

pero the_dict solo da valores del lado izquierdo, no hay valores correctos …

De la misma manera si la cadena tiene un formato ..

 "[{"sample": false, "radop": null, "view": true, "Example1": null}, {"noMarket": false, "Example2": null}]" 

y siguiendo el mismo código.

 JSON_Datalist = '[{"sample": false, "radop": null, "view": true, "Example1": null}, {"noMarket": false, "Example2": null}]' the_dict = json.loads(JSON_DataList) 

Da el diccionario de longitud de 2, y esto es lo que esperaba …

¿Alguien puede ayudarme en el primer caso, cómo puedo obtener un diccionario …

Encontré dos errores en tu primer ejemplo:

  1. Tiene un group en su versión de JDC (Strified) de su dict. Esto debería ser un "group" (con comillas).
  2. Has escrito mal tu variable; JSON_DatalistJSON_DataList (minúscula vs. L mayúscula).

Después de arreglar ambos, ya no tuve problemas:

 >>> JSON_Datalist = '{"id":"XXXX", "name": "xyz", "user" : { "id": "XXXX", "username":"XYZ", "group":{"id": "XXXX"}}}' >>> the_dict = json.loads(JSON_Datalist) >>> the_dict {u'user': {u'username': u'XYZ', u'group': {u'id': u'XXXX'}, u'id': u'XXXX'}, u'id': u'XXXX', u'name': u'xyz'} 

después de solucionar el problema, el grupo debe ser “grupo”, debajo del código puede cumplir su requisito

 json_data={"id":"XXXX", "name": "xyz", "user" : { "id": "XXXX", "username":"XYZ", "group":{"id": "XXXX"}}} data = json.dumps(json_data) json_to_python = json.loads(data) print (json_to_python) {'id': 'XXXX', 'name': 'xyz', 'user': {'id': 'XXXX', 'username': 'XYZ', 'group': {'id': 'XXXX'}}} 

He descubierto cómo generar the_dict['user']['group']['id'] dinámicamente a través de la expresión eval de Python.

Teclas es la entrada del usuario, separadas por : Ejemplo: user:group:id .

CÓDIGO:

 RefCount = 0 RespDict = json.loads(JSON_Datalist.content) #convert strings to Java object using JSON SplitKeys = Keys.split(":") KeyCount = len(SplitKeys) CommandText = "RespDict" #To setup command line based on keys information while (RefCount