请求准备 url,值错误

Requests prepare url, value wrong

我在发送请求之前使用 Request 中的 prepare() 来准备 url。但是函数 returned 的值是不正确的。就像你看到的参数 codif= 我发送了一个值列表,结果必须是 codif=7,110 但请求 return 我这个 codif%3D=7%2C110 实际上是行不通的。

你有解决这个问题的办法吗?

from requests import Request

dict_data = {
    'note':['716'],
    'codif':[7, 110]}

request_parameters = {
                'note=' : dict_data['note'],
                'codif=' : ','.join([str(i) for i in dict_data['codif']]),
            }
p = Request('GET', "https://test.intranert.com/api/light?", params=request_parameters).prepare()
p.url

输出:'https://test.intranert.com/api/light?note%3D=716&codif%3D=7%2C110'

期望:'https://test.intranert.com/api/light?note=716&codif=7,110'

谢谢,

那是因为浏览器通过 ASCII table 键码中的十六进制表示形式对 URL 输入进行编码。看一下this:可以看到,逗号的十六进制是2C,所以没问题。