JSONDecodeError: Erwartung-Wert: Zeile 1 Spalte 1
Ich erhalte diesen Fehler in Python 3.5.1.
json.- decoder.JSONDecodeError: Erwartung-Wert: Zeile 1 Spalte 1 (char, 0)
Hier ist mein code:
import json
import urllib.request
connection = urllib.request.urlopen('http://python-data.dr-chuck.net/comments_220996.json')
js = connection.read()
print(js)
info = json.loads(str(js))
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn Sie einen Blick auf die Ausgabe, die Sie erhalten von
print()
und auch in Ihrer Traceback, sehen Sie den Wert ein, den Sie zurück ist kein string, es ist ein bytes-Objekt (mit dem Präfixb
):Wenn du da die URL mit einem tool wie
curl -v
Sie werden sehen, dass der content-type istEs ist also JSON, als UTF-8 kodiert, und Python bedenkt, dass es ein byte-stream, nicht eine einfache Zeichenfolge. Um zu analysieren, müssen Sie es konvertieren in eine Zeichenfolge ersten.
Ändern Sie die Letzte Zeile code zu diesem:
js
) ist bereits ein string (str
) und muss nicht Dekodieren. Man kann Sie direkt anjson.loads()
ohne die Funktion decode.json.loads(js)
.in meinem Fall, einige Charaktere, wie " , :"'{}[] " vielleicht beschädigt das JSON-format, so benutzen Sie versuchen json.Lasten(str) mit Ausnahme von überprüfen Sie Ihre Eingabe