Maison >développement back-end >Tutoriel Python >Comment échanger des objets Datetime entre Python et JavaScript à l'aide de JSON ?

Comment échanger des objets Datetime entre Python et JavaScript à l'aide de JSON ?

Barbara Streisand
Barbara Streisandoriginal
2024-10-20 19:17:02606parcourir

How to Exchange Datetime Objects Between Python and JavaScript Using JSON?

Datetime JSON entre Python et JavaScript

L'échange d'objets datetime entre Python et JavaScript à l'aide de JSON peut être difficile en raison des différences entre leurs dates et formats d'heure. Pour résoudre ce problème, nous pouvons implémenter des gestionnaires de sérialisation et de désérialisation JSON personnalisés.

En Python, vous pouvez définir une fonction de gestionnaire de sérialisation en utilisant le paramètre par défaut dans la fonction json.dumps. Ce gestionnaire sera appelé chaque fois qu'un objet datetime est rencontré lors de la sérialisation. L'extrait de code suivant montre comment créer un gestionnaire pour les objets datetime qui les convertit au format ISO 8601 :

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

Cela affichera l'objet datetime sous forme de chaîne au format ISO 8601 :

<code class="json">"2010-04-20T20:08:21.634121"</code>

En JavaScript, vous pouvez utiliser un gestionnaire de désérialisation personnalisé pour reconvertir la chaîne ISO 8601 reçue en un objet datetime. Une fonction complète de gestionnaire de désérialisation pourrait ressembler à :

<code class="javascript">function handler(obj) {
    if (typeof obj === 'string') {
        if (/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}/.test(obj)) {
            // ISO 8601 Date string
            return new Date(obj);
        }
    }

    return obj;
}</code>

En utilisant ces gestionnaires personnalisés, vous pouvez échanger de manière transparente des objets datetime entre Python et JavaScript à l'aide de JSON, garantissant ainsi la compatibilité entre les deux plates-formes.

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!

Déclaration:
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