З 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
для надання кодування?