Maison > développement back-end > Tutoriel Python > Comment résoudre les erreurs de sérialisation JSON avec les objets datetime de Python ?

Comment résoudre les erreurs de sérialisation JSON avec les objets datetime de Python ?

Patricia Arquette
Libérer: 2024-12-04 22:06:15
original
1035 Les gens l'ont consulté

How Do I Solve JSON Serialization Errors with Python's datetime Objects?

Surmonter les problèmes de sérialisation JSON avec datetime.datetime

Au cours de l'utilisation de dictionnaires Python contenant des objets datetime, tels que sample['somedate '], vous pouvez rencontrer l'erreur suivante lorsque vous tentez de sérialiser le dictionnaire en JSON :

TypeError: datetime.datetime(2012, 8, 8, 21, 46, 24, 862000) is not JSON serializable
Copier après la connexion

La solution principale pour ce problème réside dans la fourniture d'une fonction de sérialisation personnalisée pour gérer les objets datetime. Une approche populaire consiste à utiliser le paramètre par défaut de la fonction json.dumps(), qui accepte une fonction qui prend un objet en entrée et renvoie une représentation sérialisable.

Dans ce scénario, une implémentation simple pourrait être comme suit :

def default(obj):
    if isinstance(obj, datetime.datetime):
        return str(obj)
    # Other logic to handle other types (if needed)

json_string = json.dumps(sample, default=default)
Copier après la connexion

Cette fonction convertit l'objet datetime en une représentation sous forme de chaîne avant la sérialisation. Alternativement, vous pouvez utiliser la méthode ctime() intégrée de Python :

sample['somedate'] = sample['somedate'].ctime()
json_string = json.dumps(sample)
Copier après la connexion

Cette approche convertit l'objet datetime en une chaîne lisible par l'homme qui peut être sérialisée dans le cadre de votre dictionnaire.

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