urlparse() 查询字符串丢失
urlparse() query string missing
我有两个系统:
第一个按预期工作:
>>> urlparse.urlparse('foo://bar/?blu=1')
ParseResult(scheme='foo', netloc='bar', path='/', params='', query='blu=1', fragment='')
# sys.version_info(major=2, minor=7, micro=12, releaselevel='final', serial=0)
第二个不一样:
>>> urlparse.urlparse('foo://bar/?blu=1')
ParseResult(scheme='foo', netloc='bar', path='/?blu=1', params='', query='', fragment='')
#sys.version_info(major=2, minor=7, micro=3, releaselevel='final', serial=0)
这是怎么回事?
两者都使用 Python 2.7.
第二台机器是 运行ning 非常古老的 Python 2.7 版本。您已经 运行 进入 issue 9374, a fix for which landed in Python 2.7.4rc1, which released on 2013-03-23,所以它是比那个更早的 2.7 版本。
- Issue #9374: Generic parsing of query and fragment portions of url for any
scheme. Supported both by RFC3986 and RFC2396.
patch that fixes it is not that big, you could just copy the fixed urlsplit()
function 和猴子补丁 urllib
如果你不能升级那台机器(你必须先从 urllib
导入一些 _private
名字, 当然).
我有两个系统:
第一个按预期工作:
>>> urlparse.urlparse('foo://bar/?blu=1')
ParseResult(scheme='foo', netloc='bar', path='/', params='', query='blu=1', fragment='')
# sys.version_info(major=2, minor=7, micro=12, releaselevel='final', serial=0)
第二个不一样:
>>> urlparse.urlparse('foo://bar/?blu=1')
ParseResult(scheme='foo', netloc='bar', path='/?blu=1', params='', query='', fragment='')
#sys.version_info(major=2, minor=7, micro=3, releaselevel='final', serial=0)
这是怎么回事?
两者都使用 Python 2.7.
第二台机器是 运行ning 非常古老的 Python 2.7 版本。您已经 运行 进入 issue 9374, a fix for which landed in Python 2.7.4rc1, which released on 2013-03-23,所以它是比那个更早的 2.7 版本。
- Issue #9374: Generic parsing of query and fragment portions of url for any scheme. Supported both by RFC3986 and RFC2396.
patch that fixes it is not that big, you could just copy the fixed urlsplit()
function 和猴子补丁 urllib
如果你不能升级那台机器(你必须先从 urllib
导入一些 _private
名字, 当然).