Ü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
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)
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)
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!