52

我正在尝试解析来自 youtube api 的 json 响应数据,但我不断收到错误消息。

这是它窒息的片段:

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

..这会发生:

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

我已经确认它是有效的 json,并且我无法控制它的格式,所以我怎样才能克服这个错误?

4

2 回答 2

67

你需要一个r之前的 """,或者\用. 替换所有\\内容。这不是你从其他地方读取 json 时应该关心的事情,而是字符串本身的事情。

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

看到这里了解更多信息

于 2012-02-06T06:39:51.847 回答
8

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

>>> st = r'{ "entry":{ "etag":"W/\"A0UGRK47eCp7I9B9WiRrYU0.\"" } }'
>>> data = json.loads(st)
>>>
于 2012-02-06T06:41:46.110 回答