Skip to main content
 首页 » 编程设计

Python 请求 : URL with percent character

2025年05月04日9over140

我到处搜索这个,但我无法解决我的问题。

我正在使用本地 API 获取一些数据,在该 API 中,通配符是百分号 %。

URL 是这样的:urlReq = 'http://myApiURL?ID=something&parameter=%w42'

然后我将其传递给 get 函数:

req = requests.get(urlReq,auth=HTTPBasicAuth(user, pass))

并得到以下错误:InvalidURL: Invalid percent-escape sequence: 'w4'

我曾尝试使用 %% 转义 % 字符,但没有成功。我还尝试了以下方法:

urlReq = 'http://myApiURL?ID=something&parameter=%sw42' % '%' 但效果不佳。

有人知道怎么解决吗?

PS 我正在使用 Python 2.7.8::Anaconda 1.9.1(64 位)

请您参考如下方法:

您应该看看 urllib.quote - 它应该可以解决问题。看看 docs供引用。

扩展这个答案:问题是,%(+ 一个十六进制数)是 escape sequence对于 URL 中的特殊字符。如果您希望服务器解释您的 % 文字,您也需要将其转义,方法是将其替换为 %25。前面提到的 qoute 函数会为您做类似的事情。