编程语言
首页 > 编程语言> > python – 缺少urlparse()查询字符串

python – 缺少urlparse()查询字符串

作者:互联网

我有两个系统:

第一个按预期工作:

>>> 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.

解决方法:

第二台机器正在运行一个非常古老的Python 2.7版本.您已经遇到了issue 9374,这是一个修复,它在Python 2.7.4rc1中登陆,其中released on 2013-03-23,所以它是一个早于它的2.7版本.

2.7.4rc1 NEWS file

  • Issue #9374: Generic parsing of query and fragment portions of url for any
    scheme. Supported both by RFC3986 and RFC2396.

patch that fixes it不是那么大,如果你不能升级那台机器你可以复制fixed urlsplit() function和猴子补丁urllib(当然,你必须首先从urllib导入一些_private名称).

标签:python,urlparse
来源: https://codeday.me/bug/20190722/1500371.html