我到处搜索这个,但我无法解决我的问题。
我正在使用本地 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 函数会为您做类似的事情。
关于Python 请求 : URL with percent character,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40170935/