jueves, 10 de diciembre de 2015

Serializar objetos a JSON en Python

Una de las tareas frecuentes que se deben realizar a la hora de implementar cualquier aplicación hoy en día que precise generar datos a archivo es la serialización de datos a formato JSON.

En Java por ejemplo existe la librería JSON-Java para tal motivo (https://github.com/douglascrockford/JSON-java).

En Python, de las mejores maneras de realizar esta tarea es con la librería jsonpickle.

jsonpickle es una librería que permite serializar objetos complejos a formato JSON, a diferencia de la librería nativa json de Python que no tiene esa funcionalidad, ya que únicamente serializa objetos simples (sin objetos como atributos), colecciones o tuplas, por ejemplo.


Para instalar la librería, basta correr un pip install jsonpickle.

A continuación un ejemplo de uso:


import jsonpickle;
from Object import Object;

mObjects = [];
mObjects.append(Object(1,"Object 1"));
mObjects.append(Object(2,"Object 2"));

mJSON = jsonpickle.encode(mObjects);

file = open("/path/file/objects.json", "w");
file.write(mJSON);
file.close();



Ejecutar el anterior código resultaría en un archivo .json con el siguiente contenido:

[
{"code":1 , "name":"Object1"},
{"code":2 , "name":"Object2"}
]



No hay comentarios:

Publicar un comentario