W Pythonie 3 żądam dokumentu json z adresu URL.
response = urllib.request.urlopen(request)
response
Obiekt jest obiektem plikopodobnym z read
i readline
metody. Zwykle obiekt JSON można utworzyć za pomocą pliku otwartego w trybie tekstowym.
obj = json.load(fp)
Chciałbym:
obj = json.load(response)
To jednak nie działa, ponieważ urlopen zwraca obiekt pliku w trybie binarnym.
Obejście to oczywiście:
str_response = response.read().decode('utf-8')
obj = json.loads(str_response)
ale to jest złe ...
Czy istnieje lepszy sposób na przekształcenie obiektu pliku bajtów w obiekt pliku ciągu? A może brakuje mi jakichkolwiek parametrów dla jednego z nich urlopen
lub json.load
dla podania kodowania?