Wie kann ich Datetime-Objekte in JSON zwischen Python und JavaScript sicher serialisieren und deserialisieren?

Mary-Kate Olsen
Freigeben: 2024-10-20 19:12:02
Original
401 Leute haben es durchsucht

How to Safely Serialize and Deserialize Datetime Objects in JSON between Python and JavaScript?

Datetime-Objekte zwischen Python und JavaScript mit JSON serialisieren und deserialisieren

Bei der Arbeit mit JSON kann es vorkommen, dass Datetime-Objekte zwischen Python und JavaScript übertragen werden müssen. Die Serialisierung solcher Objekte kann schwierig sein. In diesem Artikel werden die Best Practices für den Umgang mit Datetime-Objekten in der JSON-Kommunikation untersucht.

Serialisierung in Python

Um ein datetime.datetime-Objekt in Python zu serialisieren, können wir die Funktion json.dumps mit der Standardeinstellung verwenden Parameter. Mit diesem Parameter können wir einen benutzerdefinierten Handler angeben, um das Datetime-Objekt in ein JSON-serialisierbares Format zu konvertieren.

<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"'</code>
Nach dem Login kopieren

Die isoformat()-Methode des Datetime-Objekts gibt eine Zeichenfolgendarstellung im ISO 8601-Format zurück allgemein anerkannt.

Deserialisierung in JavaScript

In JavaScript können Sie die serialisierte Datums-/Uhrzeitzeichenfolge mit der Funktion Date.parse() wieder in ein Date-Objekt deserialisieren:

<code class="javascript">const dateString = '"2010-04-20T20:08:21.634121"';
const date = new Date(Date.parse(dateString));
// Output: Thu Apr 20 2010 20:08:21 GMT-0400 (Eastern Daylight Time)</code>
Nach dem Login kopieren

Umfassender Standardhandler

Für komplexere Szenarien benötigen Sie möglicherweise eine umfassendere Standardhandlerfunktion:

<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

Dieser Handler kann mehrere Objekttypen verarbeiten und liefert informativere Fehlermeldungen. Denken Sie daran, sowohl Datums- als auch Datums-/Uhrzeitobjekte nach Bedarf zu behandeln.

Das obige ist der detaillierte Inhalt vonWie kann ich Datetime-Objekte in JSON zwischen Python und JavaScript sicher serialisieren und deserialisieren?. 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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!