datetime类型序列化
在工作中遇到从数据库中取出来一个datetime类型的数据,在对其进行序列化的过程中,报错python datetime.datetime is not JSON serializable的问题,特记录在此。方便以后使用。就是重写构造json类,遇到日期特殊处理,其余的用内置的就行。
import json
from datetime import date
from datetime import datetime
class CJsonEncoder(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(yourdatetimeobj, cls=CJsonEncoder)