瓶日期时间.日期不是JSON serializab

2024-04-26 00:16:09 发布

您现在位置:Python中文网/ 问答频道 /正文

我是作为一个请求返回字典列表。我正在调用下面的函数。在

def get_data(id):
  selected_data = Database.get_date(id)
  json.dumps(selected_data, default=str)
  return jsonify({'data': selected_data})

所选数据如下所示

^{pr2}$

但是,我得到了下面的错误

TypeError(repr(o)+“不可JSON序列化”) 类型错误:日期时间.日期(2019,1,15)不是JSON可序列化的

我试过用json.dumps文件likethis stack overflowthread建议,但仍然得到相同的错误。在

感谢任何帮助。在


Tags: 函数idjson列表datagetdate字典
2条回答

尝试下列方法之一

selected_data["date"] = selected_data["date"].isoformat()
selected_data["date"] = selected_data["date"].strftime("%Y-%m-%d %H:%M:%S:%f")
selected_data["date"] = str(selected_data["date"])

你应该认识到一个客户JSONEncoder

import json
from datetime import date
from datetime import datetime
class JsonExtendEncoder(json.JSONEncoder):
    """
        This class provide an extension to json serialization for datetime/date.
    """
    def default(self, o):
        """
            provide a interface for datetime/date
        """
        if isinstance(o, datetime):
            return o.strftime('%Y-%m-%d %H:%M:%S')
        elif isinstance(o, date):
            return o.strftime('%Y-%m-%d')
        else:
            return json.JSONEncoder.default(self, o)
if __name__ == '__main__':
    d = {'now': datetime.now(), 'today': date.today(), 'i': 100}
    ds = json.dumps(d, cls=JsonExtendEncoder)
    print "ds type:", type(ds), "ds:", ds
    l = json.loads(ds)

相关问题 更多 >

    热门问题