Comment corriger l'erreur "TypeError: Object of type datetime is not JSON serializable" en python ?

Published: 03 octobre 2022

Tags: Python; JSON;

DMCA.com Protection Status

Exemples de comment corriger l'erreur "TypeError: Object of type datetime is not JSON serializable" en python :

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)

Références