을 (를) 사용하고 싶습니다 urllib.quote()
. 그러나 파이썬 (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
답변
Python 3.x에서는 다음을 가져와야합니다 urllib.parse.quote
.
>>> import urllib.parse
>>> urllib.parse.quote("châteu", safe='')
'ch%C3%A2teu'
Python 2.x urllib
모듈 문서 에 따르면 :
노트
urllib
모듈 부품으로 분할되어하고 파이썬 3으로 변경하고있다
urllib.request
,urllib.parse
그리고urllib.error
.
답변
Python 2.x와 3.x를 모두 처리해야하는 경우 예외를 포착하고 대안을로드 할 수 있습니다.
try:
from urllib import quote # Python 2.X
except ImportError:
from urllib.parse import quote # Python 3+
이것을 처리하기 위해 파이썬 호환성 래퍼 6 을 사용할 수도 있습니다 .
from six.moves.urllib.parse import quote
답변
urllib는 Python3에서 몇 가지 변경 사항을 거쳤으며 이제 parse 하위 모듈에서 가져올 수 있습니다.
>>> from urllib.parse import quote
>>> quote('"')
'%22'
답변
이것은 예외를 사용하지 않고 이것을 처리하는 방법입니다.
import sys
if sys.version_info.major > 2: # Python 3 or later
from urllib.parse import quote
else: # Python 2
from urllib import quote