解决json.dumps不能序列化datetime类型的问题

使用python自带的json.

dumps方法转换数据为json的时候,如果格式化的数据中有datetime类型的数据时会报错

TypeError: datetime.datetime(2014, 03, 20, 12, 10, 44) is not JSON serializable

查了一下,找到如下的方法:

1
2
3
4
5
6
7
8
9
10
11
12
13
  import json
  from datetime import date, datetime
  class MyEncoder(json.JSONEncoder):
    def default(self, obj):
        # if isinstance(obj, datetime.datetime):
        #     return int(mktime(obj.timetuple()))
        if isinstance(obj, datetime):
            return obj.strftime('%Y-%m-%d %H:%M:%S')
        elif isinstance(obj, date):
            return obj.strftime('%Y-%m-%d')
        else:
            return json.JSONEncoder.default(self, obj)
     print json.dumps(dataMap, cls=MyEncoder)