Einfachster Weg ein einfaches Klassenobjekt mit simplejson zu serialisieren?

Ich versuche zu serialisieren einer Liste von python-Objekte mit JSON (mit simplejson) und erhalte die Fehlermeldung, dass das Objekt "nicht als JSON serialisierbar".

Die Klasse ist eine einfache Klasse mit Feldern, die nur ganze zahlen, strings, und schwimmt, und erbt ähnliche Felder aus einer übergeordneten Superklasse, z.B.:

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)

wo foo, bar, sind einfache Typen wie ich oben erwähnt habe. Die einzige heikle Sache ist, die ChildClass manchmal hat ein Feld, das bezieht sich auf ein anderes Objekt (von einer Art, die nicht ParentClass oder ChildClass).

Was ist der einfachste Weg zu serialisieren diese als json-Objekt mit simplejson? Ist es ausreichend, um Sie serialisierbar als ein Wörterbuch? Ist die beste Art, schreiben Sie einfach eine dict Methode für die ChildClass? Schließlich, nicht mit dem Feld mit Bezug zu einem anderen Objekt deutlich die Dinge zu komplizieren? Wenn dem so ist, kann ich meinen code umschreiben, nur einfache Felder in Klassen (z.B. strings/Schwimmer usw.)

danke.

InformationsquelleAutor der Frage user248237dfsf | 2010-02-26

Schreibe einen Kommentar