Heim >Backend-Entwicklung >Python-Tutorial >So konvertieren Sie Datetime-Objekte zwischen Python und JavaScript mithilfe von JSON
Konvertieren von Datetime-Objekten zwischen Python und JavaScript mit JSON
Im Bereich der Datenserialisierung und -deserialisierung ist der Austausch von Datetime-Objekten zwischen Python und JavaScript über JSON kann eine Herausforderung darstellen. Lassen Sie uns untersuchen, wie wir dieses Problem angehen können, und den besten Ansatz zur Bewältigung dieser Konvertierung vorstellen.
Serialisierung in Python
Um ein datetime.datetime-Objekt von Python nach zu serialisieren JSON können wir die in Python integrierte Funktion json.dumps() verwenden. Um jedoch eine ordnungsgemäße Handhabung von Datetime-Objekten sicherzustellen, müssen wir einen benutzerdefinierten „Standard“-Parameter bereitstellen. Hier ist ein Beispielcode-Snippet:
<code class="python">import datetime import json date_handler = lambda obj: ( obj.isoformat() if isinstance(obj, (datetime.datetime, datetime.date)) else None ) json_string = json.dumps(datetime.datetime.now(), default=date_handler) print(json_string) # Output: "2010-04-20T20:08:21.634121"</code>
Dieser Ansatz stellt sicher, dass Datum/Uhrzeit-Objekte im ISO 8601-Format serialisiert werden, das für die Darstellung von Datum und Uhrzeit weithin unterstützt wird.
Deserialisierung in JavaScript
Wenn Sie eine JavaScript-Bibliothek verwenden, die das JSON-Parsing übernimmt, wie z. B. JSON.parse(), wird die ISO 8601-Zeichenfolge automatisch in ein Date-Objekt deserialisiert. So würde es in JavaScript aussehen:
<code class="js">const json_object = JSON.parse(json_string); const js_date = new Date(json_object); // Converted to JavaScript Date object</code>
Umfassender Standardhandler
Für einen umfassenderen Ansatz sollten Sie die Verwendung einer Standardhandlerfunktion in Betracht ziehen, die einen größeren Bereich von verarbeitet Objekttypen während der Serialisierung:
<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>
Mit diesem Ansatz können Sie mühelos eine Vielzahl von Objekttypen während der Serialisierung verarbeiten.
Zusätzliche Hinweise
Das obige ist der detaillierte Inhalt vonSo konvertieren Sie Datetime-Objekte zwischen Python und JavaScript mithilfe von JSON. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!