Ответ 1
urllib
был разделен на Python 3
.
Функция urllib.urlencode()
теперь urllib.parse.urlencode()
,
функция urllib.urlopen()
теперь urllib.request.urlopen()
.
Когда я пытаюсь выполнить пример вики Python, связанный с кодировкой URL:
>>> import urllib
>>> params = urllib.urlencode({'spam': 1, 'eggs': 2, 'bacon': 0})
>>> f = urllib.urlopen("http://www.musi-cal.com/cgi-bin/query", params)
>>> print f.read()
Во второй строке возникает ошибка:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: 'module' object has no attribute 'urlencode'
Что мне не хватает?
urllib
был разделен на Python 3
.
Функция urllib.urlencode()
теперь urllib.parse.urlencode()
,
функция urllib.urlopen()
теперь urllib.request.urlopen()
.
import urllib.parse
urllib.parse.urlencode({'spam': 1, 'eggs': 2, 'bacon': 0})
Вы используете документы Python 2, но пишите свою программу на Python 3.
Если urlib.parse.urlencode() не работает для вас в Python3, попробуйте следующее.
import urllib3
urllib3.request.urlencode()
urllib3 - это новый модуль в python3 по сравнению с urllib