1、将datetime数据格式转换成json序列化报错:Object of type 'datetime' is not JSON serializable ,重写json构造类如下:
import json, datetime
class DatetimeEncode(json.JSONEncoder):
def default(self, obj):
if isinstance(obj, datetime.datetime):
return obj.strftime('%Y-%m-%d %H:%M:%S')
elif isinstance(obj, datetime.date):
return obj.strftime('%Y-%m-%d')
else:
return json.JSONEncoder.default(self, obj)
2、引用重写的json构造类,如:json.dumps(data, cls=DatetimeEncode, ensure_ascii=False) 。 因为json.dumps 序列化对中文默认使用ascii编码,需要指定ensure_ascii=False 才能输出真正的中文。