So machen Sie eine JSON-Klasse serialisierbar
Um eine Klasse in Python JSON-serialisierbar zu machen, müssen Sie zwei Methoden definieren: __init__
und to_json
. Die Methode __init__
wird verwendet, um das Objekt zu initialisieren, und die Methode to_json
sollte eine Dictionary-Darstellung des Objekts zurückgeben, die in JSON konvertiert werden kann.
Hier ist ein Beispiel für eine grundlegende Klasse, die JSON-serialisierbar ist:
import json
class MyClass:
def __init__(self, name, age):
self.name = name
self.age = age
def to_json(self):
return {
'name': self.name,
'age': self.age
}
# Create an instance of the class
obj = MyClass('John', 30)
# Convert the object to a JSON string
json_str = json.dumps(obj.to_json())
# Print the JSON string
print(json_str)
In diesem Beispiel gibt to_json
ein Dictionary zurück, das die Schlüssel 'name' und 'age' und die Werte hat, die die Attribute des Objekts sind. Die Funktion json.dumps()
wird dann verwendet, um das Dictionary in einen JSON-String zu konvertieren.
Sie können auch die jsonpickle-Bibliothek verwenden, um es einfacher zu machen,
import jsonpickle
class MyClass:
def __init__(self, name, age):
self.name = name
self.age = age
# Create an instance of the class
obj = MyClass('John', 30)
# Convert the object to a JSON string
json_str = jsonpickle.encode(obj)
# Print the JSON string
print(json_str)
Auf diese Weise müssen Sie die to_json-Methode in Ihrer Klasse nicht definieren und die Instanz Ihrer Klasse wird automatisch in json konvertiert.