Maison  >  Article  >  interface Web  >  Comment sérialiser et désérialiser des objets Datetime en JSON entre Python et JavaScript

Comment sérialiser et désérialiser des objets Datetime en JSON entre Python et JavaScript

Linda Hamilton
Linda Hamiltonoriginal
2024-10-19 17:28:30971parcourir

How to Serialize and Deserialize Datetime Objects in JSON Between Python and JavaScript

Gestion des objets Datetime en JSON entre Python et JavaScript

Lors de l'échange de données entre Python et JavaScript, il est courant de rencontrer des objets datetime. Pour garantir une sérialisation et une désérialisation transparentes de ces objets, diverses approches peuvent être utilisées.

Une méthode recommandée consiste à utiliser le paramètre « par défaut » de json.dumps en Python pour gérer les objets datetime. Ce paramètre permet de spécifier une fonction de gestionnaire qui convertit les objets datetime dans un format sérialisable.

<code class="python">from datetime import datetime

date_handler = lambda obj: (
    obj.isoformat()
    if isinstance(obj, (datetime.datetime, datetime.date))
    else None
)
json_str = json.dumps(datetime.datetime.now(), default=date_handler)
print(json_str)</code>

Cette approche garantit que les objets datetime Python sont convertis au format ISO 8601, qui est standardisé et reconnu par JavaScript.

"2010-04-20T20:08:21.634121"

Alternativement, une fonction de gestionnaire par défaut plus complète peut être définie pour gérer différents types d'objets :

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

Cette fonction vérifie la présence d'un attribut 'isoformat', qui est commun dans les objets datetime et le convertit en un format sérialisable. De plus, il gère d'autres types d'objets selon les besoins.

En tirant parti de ces techniques, les objets datetime peuvent être efficacement sérialisés à partir de Python et désérialisés en JavaScript, facilitant ainsi un échange fluide de données entre les deux langages.

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