这无疑是一个有效的 json 字符串:
{"key": "引用\"value\"和 'value'"}
...由于值中的 '
和 "
,这两者均无效:
json.parse("{"key": "quoted \"value\" and 'value'"}")
json.parse('{"key": "quoted \"value\" and 'value'"}')
> SyntaxError: invalid syntax
但是,使用三引号也是无效的:
json.loads("""{"key": "quoted \"value\" and 'value'"}""")
> JSONDecodeError: Expecting ',' delimiter: line 1 column 18 (char 17)
我明白了,原因是 \"
通过多行文字呈现为 "
:
print("""{"key": "quoted \"value\" and 'value'"}""")
> {"key": "quoted "value" and 'value'"} <--- invalid json
那么你如何做到这一点呢?
在简单的情况下,我可以手动修复 json,但在复杂的情况下(数百行 json),这是不合理的。
我试图解决的问题是通过 jupyter 笔记本手动重播请求;您在 Chrome 中复制请求正文,然后希望通过将请求粘贴到 jupyter 笔记本的单元格中来重播它。
最佳答案
您可以在此处使用原始三引号字符串,它将反斜杠视为文字字符:
json.loads(r"""{"key": "quoted \"value\" and 'value'"}""")
> {'key': 'quoted "value" and \'value\''}
关于python - 如何在 python 中解析 json 字符串而不修改它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72052015/