2012-02-06 15 views
10

Estoy tratando de analizar los datos de una respuesta json de youtube api pero sigo recibiendo un error.JSON válido dando JSONDecodeError: esperando, delimitador

Este es el fragmento donde se asfixia:

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

..y esto sucede:

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

He confirmado que se trata de JSON válida y no tengo ningún control sobre el formato de la misma Entonces, ¿cómo puedo superar este error?

Respuesta

20

Usted necesitará un r antes """, o reemplace todas las \ con \\. Esto no es algo que debe preocuparse por si se lee el JSON de otro lugar, pero algo en la propia cadena.

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

ver here para más información

3

Es necesario añadir r antes de que su cadena JSON.

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

Creo que es mejor usar "" "en vez de" para adjuntar el json porque los datos pueden tener comillas simples sin guardar en él. Gracias por la respuesta. – ofko

+0

@ofko: Sé que acabo de escribir esto para mayor claridad. – RanRag

Cuestiones relacionadas