seltsames Python-Problem, 'Unicode' -Objekt hat kein Attribut 'read'

7

Hier ist mein Code und hat jemand irgendwelche Ideen was falsch ist? Ich öffne meinen JSON-Content direkt über den Browser und es funktioniert,

%Vor%

danke im voraus, Lin

    
Lin Ma 16.08.2015, 22:26
quelle

2 Antworten

17

Dieser Fehler wurde ausgelöst, weil data eine Unicode / str-Variable ist. Ändern Sie die zweite Zeile Ihres Codes, um den Fehler zu beheben:

%Vor%

json.load ruft ein Dateiobjekt in der ersten Parameterposition ab und ruft die Methode read auf.

Sie können auch die Methode json der Antwort aufrufen, um Daten direkt abzurufen:

%Vor%     
Mohsen 16.08.2015, 22:29
quelle
2

requests.get(…).text gibt den Inhalt als einzelnen Wert zurück (Unicode) Zeichenfolge. Die Funktion json.load() benötigt jedoch ein dateiähnliches Argument.

Die Lösung ist ziemlich einfach: Verwenden Sie einfach loads anstelle von load :

%Vor%

Eine noch bessere Lösung ist, einfach json() aufzurufen auf das Antwortobjekt direkt. Verwenden Sie also nicht .text , sondern .json() :

%Vor%

Während intern json.loads selbst verwendet wird, wird dieses Implementierungsdetail ausgeblendet, sodass Sie sich nur auf die JSON-Antwort konzentrieren können.

    
poke 16.08.2015 22:29
quelle