If you don’t care you can pass in default=str (I think) but if you do care you can define a function for what the string representation should look like and pass that in, but that’s a happy path case to be honest. I usually only run into this problem when something is logging unknown data (otherwise I prefer to model data like this so the IDE is happy) so I pass in the default=str just to get it functional.
Duck typing usually works but, datetime man, datetime is the warp from Warhammer 40K, it will drive you mad.
Just tried it in an ipython shell
import datetime import json json.dumps({"a": datetime.datetime(1970,1,1)})And I got the TypeError: datetime not JSON serializable though.
If you don’t care you can pass in default=str (I think) but if you do care you can define a function for what the string representation should look like and pass that in, but that’s a happy path case to be honest. I usually only run into this problem when something is logging unknown data (otherwise I prefer to model data like this so the IDE is happy) so I pass in the default=str just to get it functional.
Duck typing usually works but, datetime man, datetime is the warp from Warhammer 40K, it will drive you mad.