В 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
для кодирования?