python2.7中 集成了json的处理(simplejson),但在实际应用中,从mysql查询出来的数据,通常有日期格式,这时候,会报一个错:
TypeError: datetime.datetime(2007, 7, 23, 12, 24, 25) is not JSON serializable
说明日期转换出问题,后来再网上找到了解决办法。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
import json
from datetime import date, datetime
def __default(obj):
if isinstance (obj, datetime):
return obj.strftime( '%Y-%m-%dT%H:%M:%S' )
elif isinstance (obj, date):
return obj.strftime( '%Y-%m-%d' )
else :
raise TypeError( '%r is not JSON serializable' % obj)
print json.dumps({
'd' : datetime.now(),
'today' : date.today(),
'x' : 111
}, default = __default)
|
采用类似的方式,在得到mysql数据集后,需要序列化时,用如下方式就可以了。
1
2
3
4
5
6
|
conn = self .getConnection();
cursor = conn.cursor();
cursor.execute(sqlText,params);
result = cursor.fetchall()
jsonstr = json.dumps(myresult,default = __default)
print jsonstr
|
关键点在于覆盖了default 方法。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持服务器之家。
原文链接:http://www.yihaomen.com/article/python/179.htm