是否有可能以某种方式覆盖标准类型的 JSONEncoder 行为?例如,我希望字典不是通过 序列化{},而是通过序列化<>,这样字符串就不会被包裹在"等等中。此外,不知何故只需要处理一些标准类型
例如,代码:
import json
print(json.dumps({"a": "5", "b": {"c": "d", "e": "f", "g": ["1", "2", 3]}}, indent=4))
结论:
{
"a": "5",
"b": {
"c": "d",
"e": "f",
"g": [
"1",
"2",
3
]
}
}
我也想得到:
<
a: 5,
b: <
c: d,
e: f,
g: [
1,
2,
3
]
>
>
有必要以“自定义”形式接收数据,不需要反序列化。
我找到了如何添加非标准类型的序列化,但我没有找到如何更改标准类型的行为(
dict, list, str, int, float, True, False, )。None
明白了。有必要重写方法
encode和iterencode类JSONEncoder。我的拐杖版本:
结论:
它非常适合我的任务,但是如果在被序列化的对象中的某处有一个列表,那么缩进就会有问题。