Heim > Backend-Entwicklung > Python-Tutorial > So konvertieren Sie Datetime-Objekte zwischen Python und JavaScript mithilfe von JSON

So konvertieren Sie Datetime-Objekte zwischen Python und JavaScript mithilfe von JSON

DDD
Freigeben: 2024-10-20 19:15:02
Original
655 Leute haben es durchsucht

How to Convert Datetime Objects Between Python and JavaScript Using 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>
Nach dem Login kopieren

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>
Nach dem Login kopieren

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>
Nach dem Login kopieren

Mit diesem Ansatz können Sie mühelos eine Vielzahl von Objekttypen während der Serialisierung verarbeiten.

Zusätzliche Hinweise

  • ISO 8601 ist ein Standard für die Darstellung von Datums- und Uhrzeitangaben in einem maschinenlesbaren Format.
  • Die Ausgabe des benutzerdefinierten Handlers sollte dem vom Deserialisierer erwarteten Format entsprechen.
  • Weitere Informationen Weitere Informationen finden Sie in der Dokumentation zu json.dumps() von Python und JSON.parse() von JavaScript.

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!

Quelle:php
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage