Maison > interface Web > js tutoriel > Comment gérer les objets Datetime dans JSON Exchange entre Python et JavaScript

Comment gérer les objets Datetime dans JSON Exchange entre Python et JavaScript

Susan Sarandon
Libérer: 2024-10-19 17:30:30
original
577 Les gens l'ont consulté

How to Handle Datetime Objects in JSON Exchange Between Python and JavaScript

Gestion des objets datetime dans l'échange JSON entre Python et JavaScript

Lors de l'échange d'objets datetime entre Python et JavaScript à l'aide de JSON, il existe un défi dû aux différentes manières dont les deux langues représentent les dates et les heures. Cet article présente les meilleures pratiques pour cette tâche.

Conversion Python vers JavaScript

Pour sérialiser un objet datetime.datetime en Python pour la transmission JSON, utilisez l'option ' paramètre default' de la fonction json.dumps avec une fonction de gestionnaire de date personnalisée :

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

Cette fonction renvoie le format ISO 8601 de l'objet datetime, qui est une norme largement acceptée pour la représentation de la date et de l'heure.

Conversion JavaScript vers Python

En JavaScript, vous pouvez désérialiser la chaîne JSON reçue avec une fonction de relance de date personnalisée. Cette fonction analysera la chaîne ISO 8601 et reconstruira l'objet datetime :

<code class="javascript">let date_reviver = date => new Date(date);
JSON.parse(json_string, date_reviver);</code>
Copier après la connexion

Gestionnaire de date complet

Pour une approche plus complète, vous pouvez créer une date personnalisée fonction de gestionnaire qui couvre plusieurs types de données :

<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

Cette fonction garantit que différents types d'objets sont traités de manière appropriée lors de la sérialisation.

Remarques supplémentaires

  • Le format ISO 8601 utilisé pour les objets datetime est ISO 8601.
  • Cette approche peut également gérer les objets date (datetime.date) en Python.

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