Разница между urlopen. (Url) иquests.get (url) - PullRequest
0 голосов
/ 08 июня 2018

Мой код:

r = requests.get('http://www.pythonchallenge.com/pc/def/banner.p')
t = urlopen('http://www.pythonchallenge.com/pc/def/banner.p')

print(r)

'Response [200]'

print(t)

'http.client.HTTPResponse object at 0x0430A370'

Почему с помощью request.get возвращается только экземпляр объекта (в данном случае код ответа), а urlopen возвращает реальный объект?

Тогда мой вопрос: как я могу использовать запросы для возврата объекта вместо кода ответа?(Я хочу десериализовать содержимое, используя pickle)

1 Ответ

0 голосов
/ 08 июня 2018

Вы путаете то, что возвращает print с самим объектом.requests.get действительно получает объект.Разработчик requests принял исполнительное решение вернуть r.status_code при вызове функции print.Они могли бы вернуть что угодно: r.text или r.raw, например.Похоже, вы ожидали увидеть последнее.

Если вам интересно, вот немного больше информации о том, как разработчики могут определить, что возвращает print: Как напечатать класс или объекты класса, используя print ()?

...