该文档建议将
JSONEnprer子类化并实现您自己的默认方法。似乎您基本上就在那儿,这不是“肮脏的骇客”。
日期未由默认编码器处理的原因是,JSON中没有日期的标准表示形式。有人使用该格式
/Date(1198908717056)/,但我个人更喜欢ISO格式。
import jsonimport datetimeclass DateTimeEnprer(json.JSONEnprer): def default(self, obj): if isinstance(obj, (datetime.datetime, datetime.date, datetime.time)): return obj.isoformat() elif isinstance(obj, datetime.timedelta): return (datetime.datetime.min + obj).time().isoformat() return super(DateTimeEnprer, self).default(obj)now = datetime.datetime.now()enprer = DateTimeEnprer()enprer.enpre({"datetime": now, "date": now.date(), "time": now.time()})> {"datetime": "2019-07-02T16:17:09.990126", "date": "2019-07-02", "time": "16:17:09.990126"}


