Я пытаюсь сериализовать список объектов python с помощью JSON (используя simplejson), и я получаю ошибку, что объект "не является сериализуемым JSON".
Класс - это простой класс, имеющий поля, которые являются целыми числами, строками и поплавками, и наследует аналогичные поля из одного родительского суперкласса, например:
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)
где foo, bar - простые типы, как я упоминал выше. Единственное сложное дело в том, что ChildClass иногда имеет поле, которое ссылается на другой объект (типа, который не является ParentClass или ChildClass).
Какой простой способ сериализовать это как объект json с simplejson? Достаточно ли сделать его сериализуемым как словарь? Лучший способ просто написать метод dict для ChildClass? Наконец, имеет ли поле, которое относится к другому объекту, значительно усложняет ситуацию? Если это так, я могу переписать мой код, чтобы иметь только простые поля в классах (например, строки /float и т.д.).
спасибо.