2012-02-06 15 views
10

Próbuję parsować dane odpowiedzi JSON z apk youtube, ale ciągle dostaję błąd.Poprawny JSON podając JSONDecodeError: Oczekiwanie, ogranicznik

Oto fragment gdzie zadławienia:

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

..i tak się dzieje:

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

Ustaliliśmy, że jest to ważny json i mam żadnej kontroli nad nim formatowania więc jak mogę ominąć ten błąd?

Odpowiedz

20

Będziesz potrzebował r przed „””, lub wymienić wszystkie \ z \\. To nie jest coś należy dbać o to, kiedy odczytać json gdzieś indziej, ale coś w sam ciąg.

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

here zobaczyć więcej informacji

3

trzeba dodać r przed ciągiem jSON.

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

Myślę, że lepiej użyć "" "zamiast", aby zamknąć json, ponieważ dane mogą zawierać w sobie pojedyncze znaki cudzysłowu. Dziękuję za odpowiedź. – ofko

+0

@ofko: Wiem, że napisałem to dla jasności. – RanRag

Powiązane problemy