AttributeError: у объекта 'NoneType' нет атрибута 'content' - PullRequest
0 голосов
/ 04 июля 2018

Я хочу скачать zip-файл, используя python, я получаю время выполнения следующего кода

import requests, zipfile, StringIO

zip_file_url = "http://www.blog.pythonlibrary.org/wp-content/uploads/2012/06/wxDbViewer.zip"
r = None
try:
 r = requests.get(zip_file_url, stream=True)

except requests.exceptions.ConnectionError:
 print "Connection refused"

z = zipfile.ZipFile(StringIO.StringIO(r.content))

Как мне объявить "r"?

1 Ответ

0 голосов
/ 04 июля 2018

Вы не должны объявлять r. В python вам не нужно объявлять переменные.

Из вашего вопроса не ясно, но я готов поспорить, что ваш вывод содержит строку "Отказано в соединении". В этом случае нет необходимости пытаться получить доступ к r.content: поскольку в соединении отказано, ничего не может быть. Просто выполните правильное управление ошибками:

import requests, zipfile, StringIO

zip_file_url = "http://www.blog.pythonlibrary.org/wp-content/uploads/2012/06/wxDbViewer.zip"
try:
    r = requests.get(zip_file_url, stream=True)
except requests.exceptions.ConnectionError:
    print "Connection refused"
    exit() # That's an option, just finish the program

if r is not None:
    z = zipfile.ZipFile(StringIO.StringIO(r.content))
else:
    # That's the other option, check that the variable contains
    # a proper value before referencing it.
    print("I told you, there was an error while connecting!")
...