TypeError :Object of type 'datetime' is not JSON serilizerable
这个问题是由于在python中使用json.dumps()把json字典转成json字符串时引起的,因为json
字典内部包含日期类型的数据,无法通过json.dumps()转成字符串。
解决方式有两种:
1.手动去处理字典内部的日期类型的数据(相较于下面一种,这种代码书写量可能会比较大,而且可能会书写多次,但也不失为一种很有效的办法)
2.重写json内部的JSONDecoder类的default方法,达到在使用json.dumps时会判断内部是否有日期类型的数据,如有则格式化
import json from datetime import date, datetime class DateEncoder(json.JSONEncoder): def default(self, obj): if isinstance(obj, datetime): return obj.strftime('%Y-%m-%d %H:%M:%S') elif isinstance(obj, date): return obj.strftime("%Y-%m-%d") else: return json.JSONEncoder.default(self, obj) 使用时: return HttpResponse(json.dumps(rows, cls=DateEncoder))