TypeError: Object of type datetime is not JSON serializable
json.dumps() met a type it doesn’t know how to encode (datetime, Decimal, set, custom objects).
Seen on:
Python
Meaning
The json module only handles dict, list, str, int, float, bool and None. Convert other types or pass a default= function.
Common causes
- datetime/date objects
- Decimal from databases
- set instead of list
- ORM model instances
⚡ Quick fix
- json.dumps(data, default=str) for quick conversions
- Convert explicitly (isoformat(), float(), list())
- Use the framework’s serializer (DRF, pydantic model_dump_json)
Detailed fix by platform
Python
json.dumps(payload, default=lambda o: o.isoformat() if hasattr(o, "isoformat") else str(o))
How to diagnose
- Type — Which type is named?
- Field — Where in the data?
🧠 Still stuck? Analyze your error
Paste the full message, response headers or stack trace — we'll detect the platform and point to the most likely cause.
Was this page helpful?
Report a correction or suggest an improvement
Last updated 2 Oct 2026