Допустимый JSON, дающий JSONDecodeError: Ожидается, разделитель - PullRequest
20 голосов
/ 06 февраля 2012

Я пытаюсь проанализировать данные ответа json из API YouTube, но получаю сообщение об ошибке.

Вот фрагмент, где он задыхается:

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

.. и это происходит:

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

Я подтвердил, что это действительно json, и я не могу контролировать его форматирование, так как я могу обойти эту ошибку?

Ответы [ 2 ]

31 голосов
/ 06 февраля 2012

Вам понадобится r перед "" "или замените все \ на \\. Это не то, о чем вы должны заботиться, когда читаете json откуда-то еще, а что-то в самой строке.

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

см. здесь для получения дополнительной информации

5 голосов
/ 06 февраля 2012

Вам нужно добавить r перед строкой json.

>>> st = r'{ "entry":{ "etag":"W/\"A0UGRK47eCp7I9B9WiRrYU0.\"" } }'
>>> data = json.loads(st)
>>>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...