我到处搜索这个,但我无法解决我的问题。
我正在使用本地 API 获取一些数据,在该 API 中,通配符是百分号 %。
URL 是这样的:urlReq = 'http://myApiURL?ID=something¶meter=%w42'
然后我将其传递给 get 函数:
req = requests.get(urlReq,auth=HTTPBasicAuth(user, pass))
并得到以下错误:InvalidURL: Invalid percent-escape sequence: 'w4'
我曾尝试使用 %% 转义 % 字符,但没有成功。我还尝试了以下方法:
urlReq = 'http://myApiURL?ID=something¶meter=%sw42' % '%' 但效果不佳。
有人知道怎么解决吗?
PS 我正在使用 Python 2.7.8::Anaconda 1.9.1(64 位)
请您参考如下方法:
您应该看看 urllib.quote - 它应该可以解决问题。看看 docs供引用。
扩展这个答案:问题是,%(+ 一个十六进制数)是 escape sequence对于 URL 中的特殊字符。如果您希望服务器解释您的 % 文字,您也需要将其转义,方法是将其替换为 %25。前面提到的 qoute 函数会为您做类似的事情。
