web-dev-qa-db-fra.com

JSON valide donnant JSONDecodeError: Attente, délimiteur

J'essaie d'analyser les données de réponse json à partir de l'API YouTube, mais je reçois toujours une erreur.

Voici l'extrait de code où il s'étouffe:

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

..et cela se produit:

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

J'ai confirmé qu'il est valide json et je n'ai aucun contrôle sur sa mise en forme, alors comment puis-je surmonter cette erreur?

25
ofko

Vous aurez besoin d'un r avant "" ", ou remplacez tous les \ Par \\. Ce n'est pas quelque chose dont vous devriez vous soucier lorsque vous lisez le json ailleurs, mais quelque chose dans la chaîne elle-même.

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

voir ici pour plus d'informations

41
Felix Yan

Vous devez ajouter r avant votre chaîne json.

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