在工作中遇到从数据库中取出来一个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)
本文介绍了一种解决Python中datetime类型数据在JSON序列化时出现的错误方法。通过自定义JSONEncoder子类CJsonEncoder,可以将datetime和date类型的数据转换为字符串格式,从而实现正常序列化。
2182

被折叠的 条评论
为什么被折叠?



