有效JSON给出JSONDecodeError:期望,分隔符

ofk*_*fko 25 python json

我正在尝试解析来自youtube api的json响应数据,但我一直收到错误.

这是窒息的片段:

data = json.loads("""{ "entry":{ "etag":"W/\"A0UGRK47eCp7I9B9WiRrYU0.\"" } }""")
Run Code Online (Sandbox Code Playgroud)

..这发生了:

JSONDecodeError: Expecting , delimiter: line 1 column 23 (char 23)
Run Code Online (Sandbox Code Playgroud)

我已经确认它是有效的json,我无法控制它的格式,所以我怎么能通过这个错误?

Fel*_*Yan 38

你需要一个r前""",或替换所有\\\,这是不是你应该关心的时候从别的地方看JSON的事,但字符串本身.

data = json.loads(r"""{ "entry":{ "etag":"W/\"A0UGRK47eCp7I9B9WiRrYU0.\"" } }""")

请看这里了解更多信息

  • 好的,但你需要解释一下原因。输入需要传递一个原始字符串以避免`\"`反斜杠转义被误解。 (4认同)
  • 如果字符串存储在变量中,有什么解决方案? (2认同)

Ran*_*Rag 5

您需要r在json字符串之前添加。

>>> st = r'{ "entry":{ "etag":"W/\"A0UGRK47eCp7I9B9WiRrYU0.\"" } }'
>>> data = json.loads(st)
>>>
Run Code Online (Sandbox Code Playgroud)