Heim > Backend-Entwicklung > Python-Tutorial > Wie löse ich JSON-Serialisierungsfehler mit den Datetime-Objekten von Python?

Wie löse ich JSON-Serialisierungsfehler mit den Datetime-Objekten von Python?

Patricia Arquette
Freigeben: 2024-12-04 22:06:15
Original
1021 Leute haben es durchsucht

How Do I Solve JSON Serialization Errors with Python's datetime Objects?

Überwindung von JSON-Serialisierungsproblemen mit datetime.datetime

Im Zuge der Arbeit mit Python-Wörterbüchern, die Datetime-Objekte enthalten, wie etwa sample['somedate '], kann beim Versuch, das Wörterbuch in JSON zu serialisieren, der folgende Fehler auftreten:

TypeError: datetime.datetime(2012, 8, 8, 21, 46, 24, 862000) is not JSON serializable
Nach dem Login kopieren

Die primäre Lösung für Dieses Problem liegt in der Bereitstellung einer benutzerdefinierten Serialisierungsfunktion zur Verarbeitung von Datetime-Objekten. Ein beliebter Ansatz besteht darin, den Standardparameter der Funktion json.dumps() zu verwenden, der eine Funktion akzeptiert, die ein Objekt als Eingabe akzeptiert und eine serialisierbare Darstellung zurückgibt.

In diesem Szenario könnte eine einfache Implementierung wie folgt aussehen folgt:

def default(obj):
    if isinstance(obj, datetime.datetime):
        return str(obj)
    # Other logic to handle other types (if needed)

json_string = json.dumps(sample, default=default)
Nach dem Login kopieren

Diese Funktion konvertiert das Datetime-Objekt vor der Serialisierung in eine String-Darstellung. Alternativ können Sie die in Python integrierte ctime()-Methode verwenden:

sample['somedate'] = sample['somedate'].ctime()
json_string = json.dumps(sample)
Nach dem Login kopieren

Dieser Ansatz konvertiert das datetime-Objekt in eine für Menschen lesbare Zeichenfolge, die als Teil Ihres Wörterbuchs serialisiert werden kann.

Das obige ist der detaillierte Inhalt vonWie löse ich JSON-Serialisierungsfehler mit den Datetime-Objekten von Python?. 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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage