Umgang mit Datetime-Objekten im JSON-Austausch zwischen Python und JavaScript
Beim Austausch von Datetime-Objekten zwischen Python und JavaScript mithilfe von JSON besteht eine Herausforderung auf die unterschiedliche Art und Weise, wie die beiden Sprachen Datum und Uhrzeit darstellen. In diesem Artikel wird die beste Vorgehensweise für diese Aufgabe vorgestellt.
Python-zu-JavaScript-Konvertierung
Um ein datetime.datetime-Objekt in Python für die JSON-Übertragung zu serialisieren, verwenden Sie „ default'-Parameter der json.dumps-Funktion mit einer benutzerdefinierten Datumshandlerfunktion:
<code class="python">date_handler = lambda obj: ( obj.isoformat() if isinstance(obj, (datetime.datetime, datetime.date)) else None ) json.dumps(datetime.datetime.now(), default=date_handler)</code>
Diese Funktion gibt das ISO 8601-Format des datetime-Objekts zurück, was ein weithin akzeptierter Standard für die Darstellung von Datum und Uhrzeit ist.
JavaScript-zu-Python-Konvertierung
In JavaScript können Sie die empfangene JSON-Zeichenfolge mit einer benutzerdefinierten Datumswiederherstellungsfunktion deserialisieren. Diese Funktion analysiert die ISO 8601-Zeichenfolge und rekonstruiert das Datetime-Objekt:
<code class="javascript">let date_reviver = date => new Date(date); JSON.parse(json_string, date_reviver);</code>
Umfassender Datumshandler
Für einen umfassenderen Ansatz können Sie ein benutzerdefiniertes Datum erstellen Handlerfunktion, die mehrere Datentypen abdeckt:
<code class="python">def handler(obj): if hasattr(obj, 'isoformat'): return obj.isoformat() elif isinstance(obj, ...): return ... else: raise TypeError, 'Object of type %s with value of %s is not JSON serializable' % (type(obj), repr(obj))</code>
Diese Funktion stellt sicher, dass verschiedene Objekttypen während der Serialisierung angemessen behandelt werden.
Zusätzliche Hinweise
Das obige ist der detaillierte Inhalt vonUmgang mit Datetime-Objekten im JSON-Austausch zwischen Python und JavaScript. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!