Heim  >  Artikel  >  Backend-Entwicklung  >  Wie kann die Datetime-Kontinuität zwischen Python und JavaScript über JSON gewahrt werden?

Wie kann die Datetime-Kontinuität zwischen Python und JavaScript über JSON gewahrt werden?

Linda Hamilton
Linda HamiltonOriginal
2024-10-20 19:13:30558Durchsuche

How to Preserve Datetime Continuity Between Python and JavaScript via JSON?

Bewahrung der Datetime-Kontinuität zwischen Python und JavaScript über JSON

Bevor wir uns an die Lösung wagen, wollen wir zunächst das Problem verstehen. Wir haben ein datetime.datetime-Objekt in Python, das serialisiert und über JSON an JavaScript gesendet werden muss. Bei der Ankunft muss JavaScript in der Lage sein, es ohne Verzerrungen wieder in ein Datetime-Objekt zu deserialisieren.

Um dieses Rätsel zu lösen, bietet der vielseitige „Standard“-Parameter von JSON in json.dumps eine Lösung. Mit diesem Parameter können wir einen benutzerdefinierten Serialisierungshandler für unsere Datetime-Objekte definieren.

Der folgende Handler wickelt den Serialisierungsprozess sauber ab:

<code class="python">date_handler = lambda obj: (
    obj.isoformat()
    if isinstance(obj, (datetime.datetime, datetime.date))
    else None
)</code>

Bei Anwendung konvertiert dieser Handler Datetime-Objekte in das ISO 8601-Format während der Serialisierung:

<code class="python">json.dumps(datetime.datetime.now(), default=date_handler)
'"2010-04-20T20:08:21.634121"'</code>

Für komplexere Szenarien wird ein umfassender Handler empfohlen:

<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>

Dieser Handler generiert außerdem eine verbesserte Fehlermeldung mit dem Typ und Wert des Objekts für ein besseres Debugging. Durch die Einbindung eines Datumstyps wird sichergestellt, dass auch Datumsangaben ordnungsgemäß behandelt werden.

Das obige ist der detaillierte Inhalt vonWie kann die Datetime-Kontinuität zwischen Python und JavaScript über JSON gewahrt werden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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