2015-08-05 32 views
35

Chciałbym użyć urllib.quote(). Ale python (python3) nie znajduje modułu. Przypuśćmy, że mam ten wiersz kodu:Python: Importowanie urllib.quote

print(urllib.quote("châteu", safe='')) 

Jak importować urllib.quote?

import urllib lub import urllib.quote zarówno dać

AttributeError: 'module' object has no attribute 'quote' 

Co mnie dezorientuje jest urllib.request jest dostępny za pośrednictwem import urllib.request

Odpowiedz

8

urllib przeszedł kilka zmian w Python3 i mogą być importowane z modułem parse

>>> from urllib.parse import quote 
>>> quote('"')      
'%22'        
11

Jeśli trzeba obsługiwać zarówno Pythona 2.x oraz 3.x można złapać wyjątek i obciążenia alternatywa.

try: 
    from urllib import quote # Python 2.X 
except ImportError: 
    from urllib.parse import quote # Python 3+ 

Można również użyć Pythona zgodności opakowanie six sobie z tym poradzić.

from six.moves.urllib.parse import quote 
+1

Dziękuję, to jest warte podsumowania. –