Created
Aug 14, 2024 01:43 PM
Favorite
Favorite
Priority
备注
推荐
类型
1. 自定义 JSON 编码器
有时候我们需要处理一些标准的 json 模块无法直接序列化的对象,如自定义类、datetime对象等。我们可以创建一个自定义的 JSONEncoder 类来实现这一点。
输出结果:
2. 序列化自定义类
如果我们要序列化一个自定义类的实例,可以使用自定义的编码器来实现。
输出结果:
3. 反序列化自定义类
与序列化相反,我们也可以反序列化 JSON 数据到自定义类的实例中。
输出结果:
4. 处理循环引用
当序列化包含循环引用的对象时,可能会导致无限递归。可以通过设置 check_circular 参数为 False 来避免这个问题。
输出结果:
5. 使用 default 函数
可以传递一个自定义的 default 函数给 dumps 方法来处理特定类型的对象。
输出结果:
6. 使用 object_pairs_hook 进行有序解析
默认情况下,json 模块不会保持字典中的键的顺序。通过设置 object_pairs_hook 参数为 collections.OrderedDict 可以保持键的原始顺序。
输出结果:
7. 使用 allow_nan 参数
可以设置 allow_nan 参数来控制是否允许序列化 NaN(Not a Number)、Infinity 和 -Infinity。
输出结果:
8. 使用 indent 参数美化输出
使用 indent 参数可以美化输出的 JSON 数据,使其更具可读性。
输出结果:
9. 使用 separators 参数减少空白
使用 separators 参数可以减少空白字符,从而减小 JSON 文件的大小。
输出结果:
10. 使用 ensure_ascii 参数处理非 ASCII 字符
使用 ensure_ascii 参数可以控制是否以转义的形式输出非 ASCII 字符。
输出结果:
notion image
高级搬砖54
自动化45
自动化测试120
python高级299
测试工程师100
高级搬砖 · 目录
上一篇Python json 模块下一篇Python 接口自动化测试中的深拷贝与浅拷贝
Loading...