python3请求使用quote而不是quote_plus

时间:2017-02-20 15:55:38

标签: python-3.x python-requests urlencode

我使用Python 3和requests模块/库来查询REST服务。

默认情况下,请求似乎使用urllib.parse.quote_plus()进行urlencoding,即空格转换为+

然而,我查询的REST服务将其误解为and。所以我需要将空格编码为%20,即改为使用urllib.parse.quote()

有没有一种简单的方法来处理请求?我无法在文档中找到任何选项。

1 个答案:

答案 0 :(得分:6)

事实证明你可以!

from requests.utils import requote_uri
url = "https://www.somerandom.com/?name=Something Cool"
requote_uri(url)

'https://www.somerandom.com/?name=Something%20Cool'

documentation here requote_uri方法大约是页面的一半。