首页 > Web开发 > 详细

TypeError :Object of type 'datetime' is not JSON serilizerable

时间:2020-01-10 09:35:45      阅读:66      评论:0      收藏:0      [点我收藏+]

这个问题是由于在python中使用json.dumps()把json字典转成json字符串时引起的,因为json

字典内部包含日期类型的数据,无法通过json.dumps()转成字符串。

解决方式有两种:

  1.手动去处理字典内部的日期类型的数据(相较于下面一种,这种代码书写量可能会比较大,而且可能会书写多次,但也不失为一种很有效的办法)

  2.重写json内部的JSONDecoder类的default方法,达到在使用json.dumps时会判断内部是否有日期类型的数据,如有则格式化

  

import json  
from datetime import date, datetime
  
class DateEncoder(json.JSONEncoder):  
    def default(self, obj):  
        if isinstance(obj, 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)


使用时:
    return HttpResponse(json.dumps(rows, cls=DateEncoder))

  

TypeError :Object of type 'datetime' is not JSON serilizerable

原文:https://www.cnblogs.com/pythonxiaocaicai/p/12174505.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!