Exemples de comment corriger l'erreur "TypeError: Object of type datetime is not JSON serializable" en python :
Table des matières
Prenons un exemple :
Créer une datetime object
Rappel : pour créer une "datetime object" en python
import datetime
x = datetime.datetime.now()
donne par exemple
2022-04-04 14:16:59.604425
qui est une datetime object
Créer un fichier json
Maintenant, si nous essayons de créer un fichier json en utilisant un dictionnaire avec un objet datetime à l'intérieur :
import json
dict = {"member #002":{"first name": "John", "last name": "Doe", "age": 34, "Date":datetime.datetime.now()},
"member #003":{"first name": "Elijah", "last name": "Baley", "age": 27, "Date":datetime.datetime.now()},
"member #001":{"first name": "Jane", "last name": "Doe", "age": 42, "Date":datetime.datetime.now()}}
with open('data.json', 'w') as fp:
json.dump(dict, fp, indent=4)
il retournera l'erreur suivante :
TypeError: Object of type datetime is not JSON serializable
Pour résoudre ce problème, une solution simple consiste à ajouter l'option "default=str":
json.dump(dict, fp, indent=4, default=str)