Maison > développement back-end > Tutoriel Python > Comment préserver la continuité date/heure entre Python et JavaScript via JSON ?

Comment préserver la continuité date/heure entre Python et JavaScript via JSON ?

Linda Hamilton
Libérer: 2024-10-20 19:13:30
original
699 Les gens l'ont consulté

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

Préserver la continuité Datetime entre Python et JavaScript via JSON

Avant de nous aventurer dans la solution, comprenons d'abord le problème. Nous avons un objet datetime.datetime en Python qui doit être sérialisé et envoyé à JavaScript via JSON. À son arrivée, JavaScript doit être capable de le désérialiser en un objet datetime sans aucune distorsion.

Pour résoudre cette énigme, le paramètre polyvalent « par défaut » de JSON dans json.dumps fournit une solution. Ce paramètre nous permet de définir un gestionnaire de sérialisation personnalisé pour nos objets datetime.

Le gestionnaire suivant gère parfaitement le processus de sérialisation :

<code class="python">date_handler = lambda obj: (
    obj.isoformat()
    if isinstance(obj, (datetime.datetime, datetime.date))
    else None
)</code>
Copier après la connexion

Une fois appliqué, ce gestionnaire convertit les objets datetime au format ISO 8601. pendant la sérialisation :

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

Pour les scénarios plus complexes, un gestionnaire complet est recommandé :

<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>
Copier après la connexion

Ce gestionnaire génère également un message d'erreur amélioré avec le type et la valeur de l'objet pour un meilleur débogage. L'inclusion d'un type de date garantit que les dates sont également traitées avec élégance.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal