gpt4 book ai didi

python - JSONEncoder 子类化出错

转载 作者:行者123 更新时间:2023-12-01 08:54:06 37 4
gpt4 key购买 nike

我需要一些有关扩展标准的帮助json.JSONEncoder在Python中。

我有这样的对象:

temp = {
"a": "test/string",
"b": {
"b1": "one/more/string",
"b2": 666
},
"c": 123
}

我需要覆盖(扩展)str 的编码来替换 /\/ .

标准 json.dumps 将返回:

{"a":"test/string","b":{"b1":"one/more/string","b2":666},"c":123}

我需要得到:

{"a":"test\\/string","b":{"b1":"one\\/more\\/string","b2":666},"c":123}

甚至不要试图问我为什么需要这样做...我已经覆盖了 default()方法已经存在,但当我调用 json.dumps 时它会被忽略和我的子类

我的编码器类:

class RetardJSONEncoder(json.JSONEncoder):
def default(self, obj):
if isinstance(obj, str):
return json.JSONEncoder.default(self, obj.replace("/", "\/"))

return json.JSONEncoder.default(self, obj)

最佳答案

使用 json 包的当前实现,不可能重新定义字符串的编码方式。您希望先对客户端进行修复或对字符串进行编码,然后再将它们放入要发送的对象中。否则,您最终将得到自己的 JSON 库。

关于python - JSONEncoder 子类化出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52890290/

37 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com