[python] Python : urllib.quote 가져 오기

을 (를) 사용하고 싶습니다 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


답변