Beim Übertragen von Daten zwischen Python und JavaScript mithilfe von JSON sollte besonderes Augenmerk auf den Umgang mit Datetime-Objekten gelegt werden. In diesem Artikel wird der optimale Ansatz für die Serialisierung von Datetime-Objekten in Python und deren Deserialisierung in JavaScript untersucht.
Verwenden Sie den Standardparameter in Pythons json.dumps-Funktion, um die Datetime-Serialisierung zu handhaben:
<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) # Output: '"2010-04-20T20:08:21.634121"' (ISO 8601 format)</code>
Verwenden Sie in JavaScript die Funktion JSON.parse und verarbeiten Sie die Deserialisierung mit einer benutzerdefinierten Reviver-Funktion:
<code class="javascript">let date = JSON.parse(jsonString, (key, value) => { if (typeof value === 'string' && value.match(/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}\.\d{3}Z$/)) { return new Date(value); } return value; });</code>
Eine umfassendere Standardhandlerfunktion kann definiert werden, um verschiedene Datentypen zu berücksichtigen:
<code class="python">import datetime def handler(obj): if hasattr(obj, 'isoformat'): return obj.isoformat() elif isinstance(obj, datetime.date): return str(obj) # Convert to string for date objects elif isinstance(obj, ...): return ... # Handle other types as needed else: raise TypeError('Cannot serialize object of type {} with value {}'.format(type(obj), repr(obj)))</code>
Der verbesserte Handler umfasst:
Das obige ist der detaillierte Inhalt vonWie gehe ich mit Datetime-Objekten in JSON-Konvertierungen zwischen Python und JavaScript um?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!