python2.7 json 转换日期的处理的示例

yipeiwu_com7年前Python基础

python2.7中 集成了json的处理(simplejson),但在实际应用中,从mysql查询出来的数据,通常有日期格式,这时候,会报一个错:

TypeError: datetime.datetime(2007, 7, 23, 12, 24, 25) is not JSON serializable

说明日期转换出问题,后来再网上找到了解决办法。

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数据集后,需要序列化时,用如下方式就可以了。 

conn=self.getConnection();
cursor=conn.cursor();
cursor.execute(sqlText,params);
result=cursor.fetchall()
jsonstr=json.dumps(myresult,default=__default)
print jsonstr

关键点在于覆盖了default 方法。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持【听图阁-专注于Python设计】。

相关文章

Django视图之ORM数据库查询操作API的实例

查询表记录 查询相关API 操作:models.表名.objects.方法() <BR>all(): 查询所有结果 filter(**kwargs): 它...

Python 获取项目根路径的代码

在 运行,调试,打包成exe 三个不同场景下获取跟路径,用于解决获取资源文件绝对路径问题。 工具类代码如下: import sys import os class pathutil(...

Python进程,多进程,获取进程id,给子进程传递参数操作示例

Python进程,多进程,获取进程id,给子进程传递参数操作示例

本文实例讲述了Python进程,多进程,获取进程id,给子进程传递参数操作。分享给大家供大家参考,具体如下: 线程与线程之间共享全局变量,进程之间不能共享全局变量。 进程与进程相互独立&...

Python OpenCV获取视频的方法

之前有文章,使用Android平台的OpenCV接入了视频,控制的目标是手机的摄像头,这是OpenCV的好处,使用OpenCV可以使用跨平台的接口实现相同的功能,减少了平台间移植的困难。...

简单的python协同过滤程序实例代码

本文研究的主要是python协同过滤程序的相关内容,具体介绍如下。 关于协同过滤的一个最经典的例子就是看电影,有时候不知道哪一部电影是我们喜欢的或者评分比较高的,那么通常的做法就是问问周...