Mit Python 3 fordere ich ein JSON-Dokument von einer URL an.
response = urllib.request.urlopen(request)
Das response
Objekt ist ein dateiähnliches Objekt mit read
und readline
Methoden. Normalerweise kann ein JSON-Objekt mit einer im Textmodus geöffneten Datei erstellt werden.
obj = json.load(fp)
Was ich tun möchte ist:
obj = json.load(response)
Dies funktioniert jedoch nicht, da urlopen ein Dateiobjekt im Binärmodus zurückgibt.
Eine Umgehung ist natürlich:
str_response = response.read().decode('utf-8')
obj = json.loads(str_response)
aber das fühlt sich schlecht an ...
Gibt es eine bessere Möglichkeit, ein Byte-Dateiobjekt in ein String-Dateiobjekt umzuwandeln? Oder fehlen mir Parameter für eine urlopen
oder json.load
eine Kodierung?