500字范文,内容丰富有趣,生活中的好帮手!
500字范文 > json转换datetime格式数据出错问题

json转换datetime格式数据出错问题

时间:2022-10-04 19:41:58

相关推荐

json转换datetime格式数据出错问题

django开发过程中,后端向前端传入从数据库获取的数据,其中包含了datetime类型和time类型数据,经过json的json.dumps()方法转换后传递,报错:

Object of type 'datetime' is not JSON serializable

因为datetime不是json基本格式,json基本格式转换只有下面几种

+-------------------+---------------+| Python | JSON|+===================+===============+| dict | object |+-------------------+---------------+| list, tuple | array |+-------------------+---------------+| str| string |+-------------------+---------------+| int, float | number |+-------------------+---------------+| True | true|+-------------------+---------------+| False | false |+-------------------+---------------+| None | null|+-------------------+---------------+

想要转换其他类型,都需要自定义jsonEncoder

代码如下:

import jsonimport datetimeclass ComplexEncoder(json.JSONEncoder):def default(self, obj):if isinstance(obj, datetime.datetime): # 日期和时间return obj.strftime('%Y-%m-%d %H:%M:%S')elif isinstance(obj, datetime.date): # 日期return obj.strftime('%Y-%m-%d')elif isinstance(obj, datetime.time): # 时间return obj.strftime('%H:%M:%S')else:return json.JSONEncoder.default(self, obj)

使用时,只要加上一个cls参数即可

return json.dumps(datetimestr, cls=ComplexEncoder)

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。