在python中使用json.dumps()
时,是无法将datetime格式的数据转化成json的,会报如下错误:
此时,我们需要为dumps()函数指定一个encoder:
def json_encoder(obj):
"""提供给JSONEncoder的default方法,json将按要求序列化指定类型的对象"""
if isinstance(obj, datetime.datetime):
return obj.strftime("%Y-%m-%d %X")
elif isinstance(obj, datetime.date):
return obj.strftime("%Y-%m-%d")
再将encoder赋值给dumps()
函数的default
参数:
item = {"date": datetime.datetime.now()}
print(json.dumps(item, default=self.json_encoder))
# 输出:{"date": "2021-03-04 17:16:01"}