Soy nuevo en Python y estoy jugando con datos JSON. Me gustaría construir dinámicamente un objeto JSON agregando algo de valor clave a un objeto JSON existente.
Intenté lo siguiente pero me sale TypeError: 'str' object does not support item assignment
:
import json
json_data = json.dumps({})
json_data["key"] = "value"
print 'JSON: ', json_data
json_data['key'] = 'value'
, lo que no funcionará porquejson_data
no es un diccionario de Python.pip list
le brinda la misma información y puede enviar JSON:pip list --format=json
Puede crear el diccionario Python y serializarlo a JSON en una línea y ni siquiera es feo.
fuente
Ya se proporciona una solución que permite construir un diccionario (o diccionario anidado para datos más complejos), pero si desea construir un objeto, entonces quizás intente 'ObjDict'. Esto le da mucho más control sobre el json que se creará, por ejemplo, retener el orden, y permite construir como un objeto que puede ser una representación preferida de su concepto.
pip install objdict primero.
fuente
json.dumps
es decirjson.dumps(response, sort_keys=True, indent=4)
, pero entonces está atascado con el orden alfabético y no con su orden, agrupación y representación preferidosPuedes usar
EasyDict
library ( doc ) :[ Instalación ]:
pip install easydict
fuente
Todas las respuestas anteriores son correctas, aquí hay una forma más y más fácil de hacerlo. Por ejemplo, cree una estructura de datos Dict para serializar y deserializar un objeto
( Observe que None es Null en python y lo estoy usando intencionalmente para demostrar cómo puede almacenar null y convertirlo a json null)
fuente