今天在执行python程序的时候出现如下的报错信息:
datetime.datetime(2021, 1, 6, 18, 0, 36) is not JSON serializable
部分代码段如下所示:
result_json = json.dumps(data) print result_json
序列化的数据示例:
((118207L, u'acc_register', u'safemobile_20210106', 23771L, 24371L, 600L, 600L, datetime.datetime(2021, 1, 6, 18, 0, 26)),)
解决方案:
import json import datetime class DateEncoder(json.JSONEncoder): def default(self,obj): if isinstance(obj,datetime.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)
在使用json.dumps序列化的时候,调用上面定义的函数即可,如下:
result_json =json.dumps(data, cls=DateEncoder) print result_json
添加之后,重新执行,问题解决