解决 python 中,时间日期不能序列化的问题

在python 中,

你在数据库娶到了数据中如果含有时间日期,那么你在向前端作为json对象传递的时候呢,就会报错。大致如下:

TypeError: datetime.datetime(2017, 11, 17, 5, 17, 23) is not JSON serializab

解决办法如下:

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)

 

然后,假如你有一个json对象  

result


那么

data=json.dumps(result, cls=MyEncoder)

data 就可以传递到前台了

原文地址:https://www.cnblogs.com/Viagra/p/8639423.html