Python: импорт urllib.quote
Я хотел бы использовать urllib.quote()
. Но python (python3) не находит модуль.
Предположим, у меня есть эта строка кода:
print(urllib.quote("châteu", safe=''))
Как импортировать urllib.quote?
import urllib
или
import urllib.quote
оба дают
AttributeError: 'module' object has no attribute 'quote'
Меня смущает то, что urllib.request
доступен через import urllib.request
Ответы
Ответ 1
В Python 3.x вам нужно импортировать urllib.parse.quote
:
>>> import urllib.parse
>>> urllib.parse.quote("châteu", safe='')
'ch%C3%A2teu'
Согласно документации Python 2.x urllib
:
Примечание
Модуль urllib
был разбит на части и переименован в Python 3 на urllib.request
, urllib.parse
и urllib.error
.
Ответ 2
Если вам нужно обрабатывать оба Python 2.x и 3.x, вы можете поймать исключение и загрузить альтернативу.
try:
from urllib import quote # Python 2.X
except ImportError:
from urllib.parse import quote # Python 3+
Вы также можете использовать обертку совместимости с python six, чтобы справиться с этим.
from six.moves.urllib.parse import quote
Ответ 3
urllib прошел некоторые изменения в Python3 и теперь может быть импортирован из подмодуля синтаксического анализа
>>> from urllib.parse import quote
>>> quote('"')
'%22'