datetime.date(2014, 4, 25) is not JSON serializable

时间:2022-05-08
本文章向大家介绍datetime.date(2014, 4, 25) is not JSON serializable,主要内容包括# 背景、# 解决方法、基本概念、基础应用、原理机制和需要注意的事项等,并结合实例形式分析了其使用技巧,希望通过本文能帮助到大家理解应用这部分内容。

# 背景

接口期望返回json格式数据,但数据存储在mysql中,先将mysql的数据转为dict,然后将dict转为json格式,然后就报这个错误了的,原因就是时间格式转换问题

# 解决方法

1. 创建这么一个方法

def date_handler(obj):
    if hasattr(obj, 'isoformat'):
        return obj.isoformat()
    else:
        raise TypeError

2. 然后这样转换:

json.dumps(people.as_dict(), default=date_handler)
people.as_dict()是将mysql数据转为dict格式