„Wenn ein Arbeiter seine Arbeit gut machen will, muss er zuerst seine Werkzeuge schärfen.“ – Konfuzius, „Die Gespräche des Konfuzius. Lu Linggong“
Titelseite > Programmierung > Wie kann ich meine Python-Klassen JSON-serialisierbar machen?

Wie kann ich meine Python-Klassen JSON-serialisierbar machen?

Veröffentlicht am 21.12.2024
Durchsuche:528

How Can I Make My Python Classes JSON Serializable?

Python-Klassen JSON serialisierbar machen

Serialisierung ermöglicht die Konvertierung von Objekten in ein für Persistenz oder Übertragung geeignetes Format. Die Serialisierung benutzerdefinierter Klassen in JSON führt aufgrund ihrer nicht JSON-serialisierbaren Natur häufig zu einem TypeError.

Implementieren einer toJSON()-Methode

Ein Ansatz besteht darin, eine zu erstellen toJSON()-Methode für die Klasse, die ihre Serialisierung manuell übernimmt. Dies erfordert die Implementierung einer benutzerdefinierten JSON-Serialisierungsfunktion und die Gewährleistung der ordnungsgemäßen Handhabung verschachtelter Objekte.

import json

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

    def toJSON(self):
        return json.dumps(self.__dict__)

x = FileItem('/foo/bar')
print(x.toJSON())  # Outputs: '{"fname": "/foo/bar"}'

Verwenden der Orjson-Bibliothek

Für eine umfassende Als Lösung sollten Sie die Verwendung der orjson-Bibliothek in Betracht ziehen, die eine effiziente und anpassbare Möglichkeit bietet, benutzerdefinierte Klassen in JSON zu serialisieren. Es bietet erweiterte Funktionen wie Schema-Erzwingung und Unterstützung für komplexe Objektstrukturen.

import orjson

@orjson.dataclass
class FileItem:
    fname: str

x = FileItem('/foo/bar')
json_bytes = orjson.dumps(x)  # Returns a byte string
print(json_bytes.decode())  # Outputs: '{"fname": "/foo/bar"}'

Schlussfolgerung

Verwenden eines benutzerdefinierten toJSON() -Methode oder die orjson-Bibliothek bieten praktische Lösungen für die Serialisierung von Python-Klassen in JSON. Beide Ansätze stellen sicher, dass Objekte effektiv in einem JSON-Format dargestellt und übertragen werden können.

Neuestes Tutorial Mehr>

Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.

Copyright© 2022 湘ICP备2022001581号-3