Je voudrais utiliser urllib.quote()
. Mais python (python3) ne trouve pas le module. Supposons que j'ai cette ligne de code:
print(urllib.quote("châteu", safe=''))
Comment importer urllib.quote?
import urllib
ou import urllib.quote
les deux donnent
AttributeError: 'module' object has no attribute 'quote'
Ce qui me trouble, c'est que urllib.request
est accessible via import urllib.request
Dans Python 3.x, vous devez importer urllib.parse.quote
:
_>>> import urllib.parse
>>> urllib.parse.quote("châteu", safe='')
'ch%C3%A2teu'
_
Selon documentation Python 2.x urllib
du module :
NOTE
Le module
urllib
a été scindé en plusieurs parties et renommé en Python 3 en _urllib.request
_, _urllib.parse
_ et _urllib.error
_.
Si vous devez gérer à la fois Python 2.x et 3.x, vous pouvez intercepter l’exception et charger l’alternative.
try:
from urllib import quote # Python 2.X
except ImportError:
from urllib.parse import quote # Python 3+
Vous pouvez également utiliser le wrapper de compatibilité python six pour gérer cela.
from six.moves.urllib.parse import quote
urllib a subi quelques modifications dans Python3 et peut maintenant être importé du sous-module parse
>>> from urllib.parse import quote
>>> quote('"')
'%22'