python中这个错误的原因是json.dumps无法对字典中的datetime时间格式数据进行转化,dumps的原功能是将dict转化为str格式,不支持转化时间,所以需要将json类部分内容重新改写,来处理这种特殊日期格式。
例如字典dic:
dic={'name':'jack', 'create_time': datetime.datetime(2019, 3, 19, 10, 6, 6)}
直接json.dumps(dic)会报如下错误:
方法重写后代码如下:
class DateEncoder(json.JSONEncoder): def default(self, obj): if isinstance(obj, datetime.datetime): return obj.strftime("%Y-%m-%d %H:%M:%S") else: return json.JSONEncoder.default(self, obj) dic = {'name': 'jack', 'create_time': datetime.datetime(2019, 3, 19, 10, 6, 6)} print(json.dumps(dic, cls=DateEncoder))
现在输出结果就不会报错了: