【发布时间】:2021-11-28 06:18:19
【问题描述】:
我正在尝试解析其中包含双引号的 JSON 字符串:
import json
x = '''{"key":"Value \"123\" "}'''
当我尝试使用以下语句加载此 JSON 时
y = json.loads(x)
它引发了以下异常:
Expecting ',' delimiter: line 1 column 15 (char 14)
据我了解,这是由于 JSON 中 123 左右的双引号引起的。另外,我也尝试用其他一些东西替换 \" (反斜杠引号),但都是徒劳的
x.replace('\"',"'")
因为它还替换了键和值周围的双引号
'''{"key": "Value \"123\" "}''' ---Replacing--> '''{'key':'Value '123' '}''')
我无法更改输入字符串中的任何内容。这来自一个 API。 任何帮助将不胜感激,我已经坚持了很长时间。提前谢谢...
【问题讨论】:
-
这有点关系到那个负载 fn,但是如果你有任何从字符串解析的方法,请尝试首先解析 i,在 JS 中将是 JSON.parse 的字符串导致将删除附加的额外引号
-
你指的是一些 JS 库?
-
你确定这就是真实数据的样子吗?使用转义序列解释文字字符串(写在源代码中) - 逐字获取现有字符串(来自文件、套接字、API)。 Python 不会表示如图所示的字符串,因为转义序列是多余的。
-
是的,数据的格式就是这样。服务器基本上是从 PST 文件中提取数据并通过 API 发送数据。
-
重点是,由于某种原因,您在数据中显示
\",而 Python 不会这样显示它。因此,不清楚这些是否存在或由于代码或准备问题中的一些错误而丢失。例如,您再次声明\"实际上存在于您的数据中,但同时也显示没有它的数据。
标签: python json python-3.x python-jsons