Maison >développement back-end >Tutoriel Python >Comment résoudre les erreurs de sérialisation JSON avec les objets datetime de Python ?
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
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)
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)
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!