python encoder_python JSONencoder
Python json.dumps可以通过encoder选项自定义转换方式。
默认的encoder(json.JSONEncoder) 只对部分进行了转化:
"""Extensible JSON encoder for Python data structures.
Supports the following objects and types by default:
+-------------------+---------------+
| Python | JSON |
+===================+===============+
| dict | object |
+-------------------+---------------+
| list, tuple | array |
+-------------------+---------------+
| str | string |
+-------------------+---------------+
| int, float | number |
+-------------------+---------------+
| True | true |
+-------------------+---------------+
| False | false |
+-------------------+---------------+
| None | null |
+-------------------+---------------+
To extend this to recognize other objects, subclass and implement a
``.default()`` method with another method that returns a serializable
object for ``o`` if possible, otherwise it should call the superclass
implementation (to raise ``TypeError``).
如文档描述,自定义需要重写default方法,如django 中Jsonresponse方法默认的encoder DjangoJSONEncoder
from django.core.serializers.json importDjangoJSONEncoderclassDjangoJSONEncoder(json.JSONEncoder):"""JSONEncoder subclass that knows how to encode date/time, decimal types, and
UUIDs."""
defdefault(self, o):#See "Date Time String Format" in the ECMA-262 specification.
ifisinstance(o, datetime.datetime):
r=o.isoformat()ifo.microsecond:
r= r[:23] + r[26:]if r.endswith('+00:00'):
r= r[:-6] + 'Z'
returnrelifisinstance(o, datetime.date):returno.isoformat()elifisinstance(o, datetime.time):ifis_aware(o):raise ValueError("JSON can't represent timezone-aware times.")
r=o.isoformat()ifo.microsecond:
r= r[:12]returnrelifisinstance(o, datetime.timedelta):returnduration_iso_string(o)elifisinstance(o, (decimal.Decimal, uuid.UUID, Promise)):returnstr(o)else:return super().default(o)
用法 json.dumps({...},cls=DjangoJSONEncoder)
python encoder_python JSONencoder相关推荐
- 一文了解Python常见的序列化操作
关于我 编程界的一名小小程序猿,目前在一个创业团队任team lead,技术栈涉及Android.Python.Java和Go,这个也是我们团队的主要技术栈. 联系:hylinux1024@gmail ...
- python 学习笔记8 (模块)
Python 模块(Module),是一个 Python 文件,以 .py 结尾,包含了 Python 对象定义和Python语句. 模块让你能够有逻辑地组织你的 Python 代码段. 把相关的代码 ...
- python json dumps 自定义_Python json.dumps 自定义序列化操作
def login_ajax(request): if request.method == "GET": return render(request, 'login_ajax.ht ...
- 格式资料python sqlalchemy 查询结果转化为 Json格式
最近使用开辟的过程中出现了一个小问题,顺便记录一下原因和方法--格式资料 最近,给自己开辟的软件平台开辟第三方调用的API,如果返回结果集是json格式,其他语言开辟就绝对便利一些,网上找了好多资料没 ...
- Python之几种常用模块
模块 注意事项: 所有的模块导入都应该尽量往上写内置模块扩展模块自定义模块 模块不会重复被导入 : sys.moudles 从哪儿导入模块 : sys.path import import 模块名模块 ...
- Python和JavaScript之间的JSON日期时间
本文翻译自:JSON datetime between Python and JavaScript I want to send a datetime.datetime object in seria ...
- python json模块的内部实现_python – 如何使用JSON模块进行漂亮打印时实现自定义缩进?...
所以我使用Python 2.7,使用json模块编码以下数据结构: 'layer1': { 'layer2': { 'layer3_1': [ long_list_of_stuff ], 'layer ...
- python bytes' is not JSON serializable
python bytes' is not JSON serializable 参考:https://blog.csdn.net/z564359805/article/details/80599126 ...
- python之simplejson,Python版的简单、 快速、 可扩展 JSON 编码器/解码器
simplejson Python版的简单. 快速. 可扩展 JSON 编码器/解码器 编码基本的 Python 对象层次结构: import simplejson as jsonprint json ...
最新文章
- 笔记本电脑处理器_苹果高管:我们都没有想到M1的性能有那么强|英特尔|处理器|iphone|ipad|笔记本电脑...
- css4个伪元素,CSS_CSS3中的content属性使用示例,CSS中主要的伪元素有四个:befo - phpStudy...
- qt可视化数据展板_Qt 2D数据可视化之QCharts
- JDK1.8中的Stream详解
- html写一个赌马游戏,趣味赛马(在线网页游戏)
- python自定义类
- vs2015+opencv+dilb+于仕琪人类识别算法对人脸特征点进行检测
- 黑马学习之全平台听歌神器
- 相机像素尺寸(像元大小)和成像系统分辨率之间的关系
- Matlab 多项式展开或化简(即提取公因式
- 如何清除计算机的u盘使用记录,如何清除U盘使用痕迹
- 四层PCB核心板制作6——BGA引脚扇出与电路扇孔
- 每日一思(2022.5.19)——前无古人后无来者
- 亚马逊云机器人平台RoboMaker新功能WorldForge使用测试
- Hibernate第四篇【集合映射、一对多和多对一】
- BlueStacks不仅支持x86和ARM处理器,新版BlueStacks并不是单纯的实现虚拟化,而是运行整个Android系统
- lucene spatial 6.1搜索附近的饭店
- 瑞波Ripple概念解析-共识网络(官方文档不完全翻译)
- ACPR'11 Accepted
- 计算机复试英语口试,英语口语练习_大连理工大学计算机复试经验_沪江英语
热门文章
- 面向单细胞RNA-seq数据插补及聚类方法研究
- R Learnilng 十八讲7-12
- 宝塔显示linux inode,Linux显示inode的信息
- top在html5里什么意思,html中的scrolltop是什么意思
- nodejs 获取文件路径_Qunar 酒店 Nodejs 覆盖率收集实践
- microsoft edge 打不开 csdn 博客
- vmware ESXI6.7 设置 Nvidia 显卡直通
- 四十六、文件系统的层次结构
- Tensorflow mnist 数据集测试代码 + 自己下载数据
- CMAKE支持c99的两种方式