Python 查询Mysql,如果是datetime类型,在json序列化的时候会出现问题。
在网上查了一下,解决方案基本都是遍历dict数据,如果是datetime则转化为字符串。
from datetime import date, datetime
def json_serial(obj):
"""JSON serializer for objects not serializable by default json code"""
if isinstance(obj, (datetime, date)):
serial = obj.isoformat()
return serial
raise TypeError ("Type %s not serializable" % type(obj))
由于我的数据量很大,后台做循环再返回前端,响应将近40s,十分头疼。
据说使用json_dump方法可以处理这个问题,但是在我这没起作用。
from bson import json_util
import json
json.dumps(anObject, default=json_util.default)
解决思路:
想了一下,觉得不如从MySQL下手,让MySQL返回string的数据类型。在SQL引擎下做数据处理,肯定比自己for处理要效率的多。
MySQL做数据类型转换的函数是CAST。于是将SQL语句变成:
SELECT country, CAST(date AS CHAR) AS date, peak
FRO