44 votes

JSON valide donnant JSONDecodeError : Expecting , delimiter

J'essaie d'analyser des données de réponse json à partir de l'api youtube, mais j'obtiens toujours une erreur.

Voici l'extrait où il étouffe:

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

..et ça arrive :

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

J'ai confirmé qu'il s'agit d'un json valide et que je n'ai aucun contrôle sur sa mise en forme, alors comment puis-je contourner cette erreur ?

59voto

Felix Yan Points 3943

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 de quelque part d'autre, mais quelque chose dans la chaîne elle-même.

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

voir ici pour plus d'informations

7voto

RanRag Points 9395

Vous devez ajouter r avant votre chaîne json.

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

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X