Maison >interface Web >js tutoriel >Comment sérialiser des objets Datetime Python pour un échange JSON transparent avec JavaScript ?

Comment sérialiser des objets Datetime Python pour un échange JSON transparent avec JavaScript ?

DDD
DDDoriginal
2024-10-19 17:32:02744parcourir

How to Serialize Python Datetime Objects for Seamless JSON Exchange with JavaScript?

Sérialisation d'objets Datetime Python pour JSON Exchange avec JavaScript

Lors de l'utilisation de JSON pour communiquer entre Python et JavaScript, des défis surviennent dans la gestion des objets datetime. Pour résoudre ce problème, Python fournit un gestionnaire par défaut personnalisable, qui peut être intégré à json.dumps pour permettre une sérialisation et une désérialisation appropriées de ces objets.

En Python, la fonction de gestionnaire suivante exploite le format ISO 8601 pour convertir la date et l'heure. objets dans des chaînes compatibles JSON :

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

Cela garantit que la chaîne JSON résultante est dans un format qui peut être facilement analysé par JavaScript.

Cependant, il est important de considérer que la norme ISO 8601 le format ne transmet pas le type de l'objet. Pour une gestion plus complète, une fonction de gestionnaire plus robuste peut être définie :

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

Ce gestionnaire étendu于反序列化。

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