【发布时间】:2015-01-23 15:09:41
【问题描述】:
由于正斜杠只能出现在 JSON 序列化对象内的字符串中并且不会转义(在默认设置中),因此使用
json.dump(some_dict).replace('/', r'\/')
可靠地工作,但它看起来很老套。
我知道正斜杠不必转义,但您可以转义它们,对于我的用例,我想让它们转义。
有没有办法让 JSONEncoder 在不手动转义的情况下转义正斜杠?
【问题讨论】:
-
为什么要逃避它们?什么用例需要转义?任何合理的 JSON 解码器都应该能够处理未转义的正斜杠。
-
在 json 中不需要转义正斜杠,因此没有理由期望 json 编码器支持转义斜杠(或任何其他任意字符)。
-
dumps('</script>') == '"</script>"'。我没有遇到任何问题,但如果dumps('</script>') == '"<\\/script>"'我会睡得更好。 :-) 我不会将正斜杠称为“任意字符”。它是具有转义码的六个 ASCII 字符之一,尽管您不必对其进行转义。
标签: python json python-2.7 serialization escaping