解决Python自带的json不能序列化data,datetime类型数据问题
2023-09-27 14:20:10 时间
官方文档中的一个Demo:
>>> import json >>> class ComplexEncoder(json.JSONEncoder): ... def default(self, obj): ... if isinstance(obj, complex): ... return [obj.real, obj.imag] ... return json.JSONEncoder.default(self, obj) ... >>> dumps(2 + 1j, cls=ComplexEncoder) '[2.0, 1.0]' >>> ComplexEncoder().encode(2 + 1j) '[2.0, 1.0]' >>> list(ComplexEncoder().iterencode(2 + 1j)) ['[', '2.0', ', ', '1.0', ']']
然后简单扩展了一个JSONEncoder出来用来格式化时间
class CJsonEncoder(json.JSONEncoder): def default(self, obj): 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.dumps增加一个cls参数即可:
json.dumps(datalist, cls=CJsonEncoder)
如果不想定义类,直接在我们获取的date或者datetime对象后面用上strftime方法进行格式化也可以
相关文章
- Windows 64 位系统下 Python 环境的搭建
- Python数据可视化 | 豆瓣电影Top250数据分析
- python中级---->pymongo存储json数据
- Python数据序列化:①对象序列化 pickle【pickle.dump()、pickle.load()】、②文本序列化 json【json.dump()、json.load()】、③shelve
- 盘点十大隐藏在Python中的彩蛋
- 数据分析基础:数据可视化+数据分析报告(Python实现)
- python数据可视化:pyecharts
- Python xlwt数据保存到 Excel中以及xlrd读取excel文件画图
- python:将32位的16进制数据以二进制/hex/binary的形式写入到文件
- Python中通过文件将数据导入sqlite3
- 同事用python搞副业,失业了也能月入1W
- python opencv3 摄像头人脸检测
- python - functools中update_wrapper的使用,装饰器的使用,lambda的混合使用