Python:正在导入 urllib.quote
Python: Importing urllib.quote
我想使用 urllib.quote()
。但是 python (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
访问
在Python3.x中,需要导入urllib.parse.quote
:
>>> import urllib.parse
>>> urllib.parse.quote("châteu", safe='')
'ch%C3%A2teu'
根据Python 2.x urllib
module documentation:
NOTE
The urllib
module has been split into parts and renamed in Python 3 to
urllib.request
, urllib.parse
, and urllib.error
.
urllib 在 Python3 中进行了一些更改,现在可以从解析子模块中导入
>>> from urllib.parse import quote
>>> quote('"')
'%22'
如果您需要同时处理 Python 2.x 和 3.x 您可以捕获异常并加载备选方案。
try:
from urllib import quote # Python 2.X
except ImportError:
from urllib.parse import quote # Python 3+
您也可以使用 python 兼容性包装器 six 来处理这个问题。
from six.moves.urllib.parse import quote
这就是我处理这个问题的方式,没有使用异常。
import sys
if sys.version_info.major > 2: # Python 3 or later
from urllib.parse import quote
else: # Python 2
from urllib import quote
使用six
:
from six.moves.urllib.parse import quote
six
将简化 Python 2 和 Python 3 之间的兼容性问题,例如不同的导入路径。
我想使用 urllib.quote()
。但是 python (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
在Python3.x中,需要导入urllib.parse.quote
:
>>> import urllib.parse
>>> urllib.parse.quote("châteu", safe='')
'ch%C3%A2teu'
根据Python 2.x urllib
module documentation:
NOTE
The
urllib
module has been split into parts and renamed in Python 3 tourllib.request
,urllib.parse
, andurllib.error
.
urllib 在 Python3 中进行了一些更改,现在可以从解析子模块中导入
>>> from urllib.parse import quote
>>> quote('"')
'%22'
如果您需要同时处理 Python 2.x 和 3.x 您可以捕获异常并加载备选方案。
try:
from urllib import quote # Python 2.X
except ImportError:
from urllib.parse import quote # Python 3+
您也可以使用 python 兼容性包装器 six 来处理这个问题。
from six.moves.urllib.parse import quote
这就是我处理这个问题的方式,没有使用异常。
import sys
if sys.version_info.major > 2: # Python 3 or later
from urllib.parse import quote
else: # Python 2
from urllib import quote
使用six
:
from six.moves.urllib.parse import quote
six
将简化 Python 2 和 Python 3 之间的兼容性问题,例如不同的导入路径。