Estoy tratando de serializar una lista de objetos python con JSON (usando simplejson) y obtengo el error de que el objeto "no es serializable por JSON".¿La manera más fácil de serializar un objeto de clase simple con simplejson?
La clase es una clase simple que tiene campos que son sólo números enteros, cadenas, y flota, y hereda los campos similares de una superclase de los padres, por ejemplo:
class ParentClass:
def __init__(self, foo):
self.foo = foo
class ChildClass(ParentClass):
def __init__(self, foo, bar):
ParentClass.__init__(self, foo)
self.bar = bar
bar1 = ChildClass(my_foo, my_bar)
bar2 = ChildClass(my_foo, my_bar)
my_list_of_objects = [bar1, bar2]
simplejson.dump(my_list_of_objects, my_filename)
donde foo, bar son tipos simples, como he mencionado encima. Lo único delicado es que ChildClass a veces tiene un campo que se refiere a otro objeto (de un tipo que no es ParentClass o ChildClass).
¿Cuál es la forma más fácil de serializar esto como un objeto json con simplejson? ¿Es suficiente hacer que sea serializable como un diccionario? ¿Es la mejor manera de simplemente escribir un dict método para ChildClass? Finalmente, ¿tener el campo que se refiere a otro objeto complica significativamente las cosas? Si es así, puedo reescribir mi código para que solo tenga campos simples en las clases (como cadenas/carrozas, etc.)
gracias.
http: // stackoverflow. com/questions/2249792/json-serializing-django-models-with-simplejson – voyager
posible duplicado de [Python: cómo hacer una clase JSON serializable] (http://stackoverflow.com/questions/3768895/python-how-to -hacer-una-clase-json-serializable) –