【发布时间】:2019-11-20 16:57:19
【问题描述】:
我知道在处理特殊转义字符时,json 解析有很多类似的问题,但是我无法找到解决方案。我想要做的是将以下内容保存到一个 json 文件中,稍后我可以使用 python 中的 json 模块将其作为字典检索。我的json是这样的
{"head":{"body":{"/^\s+|\s+$":"", "\s+":" "}}}
当我尝试将它放入 json 并加载时,它会给我一个预期的解析错误,因为没有转义反斜杠。因此,我将其更正如下(基于 SO 的建议):
{"head":{"body":{"/^\\s+|\\s+$":"", "\\s+":" "}}}
但是,当我将它加载到字典时,虽然它会解析,但它给我的字典如下:
{"head":{"body":{"/^\\s+|\\s+$":"", "\\s+":" "}}}
而不是预期的一个反斜杠。如何处理它,使我的 \s 只有一个反斜杠而不是两个。我也想过用 ast.literal_eval() 来读取数据,但不想那样做。有关如何处理此问题的任何建议。
【问题讨论】:
-
可以使用替换
-
试试
r"/^\s+|\s+$",r代表raw -
r 在 jsons 中不起作用。我试过了。 JSONDecodeError:期望用双引号括起来的属性名称。一切都必须用双引号引起来。
-
这似乎是不可能的。看到这个stackoverflow.com/questions/49763394/…
-
@RahulRaut :看来你是对的。 Tbh 试图获得一个反斜杠而感到恼火。尝试过各种版本,例如“\u005C”,但似乎不可能获得单个反斜杠()。感谢分享链接。因此,有关如何处理此问题的任何建议。我现在正在考虑将文件保存为 txt 而不是 json,然后使用 ast。如果可行,将在此处更新
标签: python json dictionary