有效的JSON导致JSONDecodeError:期待, 分隔符

73 投票
2 回答
211919 浏览
提问于 2025-04-17 12:24

我正在尝试解析来自YouTube API的json响应数据,但我一直遇到错误。

这是出错的代码片段:

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

..然后就出现了这个问题:

JSONDecodeError: Expecting , delimiter: line 1 column 23 (char 23)

我已经确认它是有效的json格式,而且我无法控制它的格式,那我该怎么解决这个错误呢?

2 个回答

19

你需要在你的json字符串前面加上r

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

在字符串前面加一个 r,或者把所有的 \ 替换成 \\。这点在你从其他地方读取 JSON 数据时不需要太在意,但如果字符串里面有这样的内容,就要注意了。

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

想了解更多信息,可以查看 这里

撰写回答