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

Wie mache ich eine Python-Klasse JSON serialisierbar?

DDD
Freigeben: 2024-12-19 18:09:08
Original
190 Leute haben es durchsucht

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
Nach dem Login kopieren

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}
Nach dem Login kopieren

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__)
Nach dem Login kopieren

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"}
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage