Maison  >  Article  >  développement back-end  >  Comment sérialiser des objets Datetime Python en JSON pour la désérialisation JavaScript ?

Comment sérialiser des objets Datetime Python en JSON pour la désérialisation JavaScript ?

DDD
DDDoriginal
2024-10-20 19:14:02827parcourir

How to Serialize Python Datetime Objects into JSON for JavaScript De-Serialization?

Sérialisation d'objets datetime Python en JSON pour les applications JavaScript

Lors de la communication entre des applications Python et JavaScript à l'aide de JSON, la gestion des objets datetime peut être difficile. Cet article explore l'approche optimale pour sérialiser les objets datetime Python en JSON pour une désérialisation transparente en JavaScript.

Pour gérer efficacement les objets datetime en JSON, le paramètre « par défaut » dans json.dumps() peut être utilisé. Une fonction de gestionnaire de date personnalisée peut être fournie pour gérer les objets datetime pendant le processus de sérialisation.

<code class="python">import datetime

# Create a date handler
date_handler = lambda obj: (
    obj.isoformat()
    if isinstance(obj, (datetime.datetime, datetime.date))
    else None
)

# Serialize a datetime object
json_string = json.dumps(datetime.datetime.now(), default=date_handler)

print(json_string)  # Output: '"2023-02-13T18:38:48.942613"'</code>

Le processus de sérialisation convertit l'objet datetime en sa représentation ISO 8601, qui est une représentation sous forme de chaîne largement prise en charge dans les applications JavaScript.

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()  # Handle datetime objects
    elif isinstance(obj, ...):
        ...                          # Handle other custom object types
    else:
        raise TypeError(f'Object of type {type(obj)} with value {repr(obj)} is not JSON serializable')</code>

Ce gestionnaire amélioré offre une flexibilité supplémentaire dans la gestion de différents types d'objets pendant la sérialisation.

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