В Python 3 я запрашиваю документ json с URL.
response = urllib.request.urlopen(request)
responseОбъект представляет собой файл-подобный объект с readи readlineметоды. Обычно объект JSON можно создать с помощью файла, открытого в текстовом режиме.
obj = json.load(fp)
Что я хотел бы сделать, это:
obj = json.load(response)
Это, однако, не работает, так как urlopen возвращает объект файла в двоичном режиме.
Обойти это, конечно,
str_response = response.read().decode('utf-8')
obj = json.loads(str_response)
но это плохо ...
Есть ли лучший способ, которым я могу преобразовать объект файла байтов в объект файла строки? Или я пропускаю какие-либо параметры для urlopenили json.loadдля кодирования?