Ich möchte urllib.quote()
verwenden. Aber python (python3) findet das Modul nicht. Angenommen, ich habe diese Codezeile:
print(urllib.quote("châteu", safe=''))
Wie importiere ich urllib.quote?
import urllib
oder import urllib.quote
beide geben
AttributeError: 'module' object has no attribute 'quote'
Was mich verwirrt ist, dass urllib.request
ist erreichbar über import urllib.request
In Python 3.x müssen Sie urllib.parse.quote
importieren:
>>> import urllib.parse
>>> urllib.parse.quote("châteu", safe='')
'ch%C3%A2teu'
Laut Python 2.x urllib
Moduldokumentation :
[~ # ~] note [~ # ~]
Das
urllib
-Modul wurde in Teile aufgeteilt und in Python 3 inurllib.request
,urllib.parse
Undurllib.error
Umbenannt.
Wenn Sie beide behandeln müssen Python 2.x und 3.x können Sie die Ausnahme abfangen und die Alternative laden.
try:
from urllib import quote # Python 2.X
except ImportError:
from urllib.parse import quote # Python 3+
Sie können auch den Kompatibilitätswrapper python six verwenden, um dies zu handhaben.
from six.moves.urllib.parse import quote
urllib hat einige Änderungen in Python3 durchlaufen und kann nun vom Parser-Submodul importiert werden
>>> from urllib.parse import quote
>>> quote('"')
'%22'