python datetime.datetime is not JSON serializable 报错问题解决

原文在此

主要是python  list转换成json时对时间报错:datetime.datetime(2014, 5, 23, 9, 33, 3) is not JSON serializable。解决方案是上述原文。

但是我运行的时候里面有错。特记录在此。方便以后使用。就是重写构造json类,遇到日期特殊处理,其余的用内置的就行。


import json
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)