С 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
чтобы дать кодировку?