Menu Close

How to fix the “datetime.datetime not JSON serializable” error in Python?

Sometimes, we’ve to fix the "datetime.datetime not JSON serializable" error in Python.

In this article, we’ll look at how to fix the "datetime.datetime not JSON serializable" error in Python.

How to fix the "datetime.datetime not JSON serializable" error in Python?

To fix the "datetime.datetime not JSON serializable" error in Python, we can use the json.dumps method.

For instance, we write:

from datetime import date, datetime
from json import dumps


def json_serial(obj):
    if isinstance(obj, (datetime, date)):
        return obj.isoformat()
    raise TypeError("Type %s not serializable" % type(obj))


s = dumps(datetime.now(), default=json_serial)
print(s)

We create the json_serial function to serialize the datetime object into a string.

In the function,. we call isinstance with obj and (datetime, date) to check if obj that we’re trying to serialize is a date or datetime object.

If it is, then we return obj.isoformat to return a date string.

Otherwise, we raise a TypeError.

Next, we call dumps with a datetime object and set default to json_serial to use json_serial to do the serialization.

Therefore s is "2021-10-20T00:13:35.533502".

Conclusion

To fix the "datetime.datetime not JSON serializable" error in Python, we can use the json.dumps method.

Posted in Python, Python Answers