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相关推荐

  1. 一文了解Python常见的序列化操作

    关于我 编程界的一名小小程序猿,目前在一个创业团队任team lead,技术栈涉及Android.Python.Java和Go,这个也是我们团队的主要技术栈. 联系:hylinux1024@gmail ...

  2. python 学习笔记8 (模块)

    Python 模块(Module),是一个 Python 文件,以 .py 结尾,包含了 Python 对象定义和Python语句. 模块让你能够有逻辑地组织你的 Python 代码段. 把相关的代码 ...

  3. python json dumps 自定义_Python json.dumps 自定义序列化操作

    def login_ajax(request): if request.method == "GET": return render(request, 'login_ajax.ht ...

  4. 格式资料python sqlalchemy 查询结果转化为 Json格式

    最近使用开辟的过程中出现了一个小问题,顺便记录一下原因和方法--格式资料 最近,给自己开辟的软件平台开辟第三方调用的API,如果返回结果集是json格式,其他语言开辟就绝对便利一些,网上找了好多资料没 ...

  5. Python之几种常用模块

    模块 注意事项: 所有的模块导入都应该尽量往上写内置模块扩展模块自定义模块 模块不会重复被导入 : sys.moudles 从哪儿导入模块 : sys.path import import 模块名模块 ...

  6. Python和JavaScript之间的JSON日期时间

    本文翻译自:JSON datetime between Python and JavaScript I want to send a datetime.datetime object in seria ...

  7. python json模块的内部实现_python – 如何使用JSON模块进行漂亮打印时实现自定义缩进?...

    所以我使用Python 2.7,使用json模块编码以下数据结构: 'layer1': { 'layer2': { 'layer3_1': [ long_list_of_stuff ], 'layer ...

  8. python bytes' is not JSON serializable

    python bytes' is not JSON serializable 参考:https://blog.csdn.net/z564359805/article/details/80599126 ...

  9. python之simplejson,Python版的简单、 快速、 可扩展 JSON 编码器/解码器

    simplejson Python版的简单. 快速. 可扩展 JSON 编码器/解码器 编码基本的 Python 对象层次结构: import simplejson as jsonprint json ...

最新文章

  1. 笔记本电脑处理器_苹果高管:我们都没有想到M1的性能有那么强|英特尔|处理器|iphone|ipad|笔记本电脑...
  2. css4个伪元素,CSS_CSS3中的content属性使用示例,CSS中主要的伪元素有四个:befo - phpStudy...
  3. qt可视化数据展板_Qt 2D数据可视化之QCharts
  4. JDK1.8中的Stream详解
  5. html写一个赌马游戏,趣味赛马(在线网页游戏)
  6. python自定义类
  7. vs2015+opencv+dilb+于仕琪人类识别算法对人脸特征点进行检测
  8. 黑马学习之全平台听歌神器
  9. 相机像素尺寸(像元大小)和成像系统分辨率之间的关系
  10. Matlab 多项式展开或化简(即提取公因式
  11. 如何清除计算机的u盘使用记录,如何清除U盘使用痕迹
  12. 四层PCB核心板制作6——BGA引脚扇出与电路扇孔
  13. 每日一思(2022.5.19)——前无古人后无来者
  14. 亚马逊云机器人平台RoboMaker新功能WorldForge使用测试
  15. Hibernate第四篇【集合映射、一对多和多对一】
  16. BlueStacks不仅支持x86和ARM处理器,新版BlueStacks并不是单纯的实现虚拟化,而是运行整个Android系统
  17. lucene spatial 6.1搜索附近的饭店
  18. 瑞波Ripple概念解析-共识网络(官方文档不完全翻译)
  19. ACPR'11 Accepted
  20. 计算机复试英语口试,英语口语练习_大连理工大学计算机复试经验_沪江英语

热门文章

  1. 面向单细胞RNA-seq数据插补及聚类方法研究
  2. R Learnilng 十八讲7-12
  3. 宝塔显示linux inode,Linux显示inode的信息
  4. top在html5里什么意思,html中的scrolltop是什么意思
  5. nodejs 获取文件路径_Qunar 酒店 Nodejs 覆盖率收集实践
  6. microsoft edge 打不开 csdn 博客
  7. vmware ESXI6.7 设置 Nvidia 显卡直通
  8. 四十六、文件系统的层次结构
  9. Tensorflow mnist 数据集测试代码 + 自己下载数据
  10. CMAKE支持c99的两种方式