Heim >Backend-Entwicklung >Python-Tutorial >Wie mache ich eine Python-Klasse JSON serialisierbar?

Wie mache ich eine Python-Klasse JSON serialisierbar?

DDD
DDDOriginal
2024-12-19 18:09:08153Durchsuche

How to Make a Python Class JSON Serializable?

So machen Sie eine Python-Klasse JSON serialisierbar

Serialisierung ist der Prozess der Konvertierung eines Objekts in ein Format, das gespeichert oder übertragen werden kann. JSON (JavaScript Object Notation) ist ein beliebtes Datenformat, das zum Übertragen von Daten zwischen Anwendungen verwendet wird.

Um eine Python-Klasse in JSON zu serialisieren, müssen Sie das dict implementieren spezielle Methode. dict gibt ein Wörterbuch zurück, das die Attribute des Objekts enthält. Anschließend können Sie die Funktion json.dumps() verwenden, um das Wörterbuch in JSON zu serialisieren.

Zum Beispiel:

class FileItem:
    def __init__(self, fname):
        self.fname = fname

Um die Klasse FileItem in JSON zu serialisieren, Sie können die spezielle Methode dict implementieren als folgt:

class FileItem:
    def __init__(self, fname):
        self.fname = fname

    def __dict__(self):
        return {'fname': self.fname}

Sie können dann die Funktion json.dumps() verwenden, um das FileItem-Objekt in JSON zu serialisieren:

import json

x = FileItem('/foo/bar')
json_data = json.dumps(x, default=lambda o: o.__dict__)

Der Standard =lambda o: o.__dict__-Argument ist erforderlich, da die Klasse FileItem vorhanden ist nicht nativ JSON-serialisierbar. Dieses Argument weist die Funktion json.dumps() an, die Methode dict des Objekts aufzurufen, bevor es serialisiert wird.

Die resultierenden JSON-Daten lauten:

{"fname": "/foo/bar"}

Das obige ist der detaillierte Inhalt vonWie mache ich eine Python-Klasse JSON serialisierbar?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn