Python get请求的键入参数有多个值
我面临一个问题,需要在get响应中向参数发送多个值 比如说Python get请求的键入参数有多个值,python,Python,我面临一个问题,需要在get响应中向参数发送多个值 比如说 API is URL =https://localhost:9090?id=1&department=hr 现在在id中,我想在一个请求中发送1,2,3,4,我确实喜欢 PARAMS = {'id': [1,2,3,4],'department'='hr'} r = requests.get(url = URL, params = PARAMS) 它仍然没有给出所需的响应,因为它只显示id=4的值。有人能帮我一下吗?当给定
API is URL =https://localhost:9090?id=1&department=hr
现在在id
中,我想在一个请求中发送1,2,3,4
,我确实喜欢
PARAMS = {'id': [1,2,3,4],'department'='hr'}
r = requests.get(url = URL, params = PARAMS)
它仍然没有给出所需的响应,因为它只显示
id=4
的值。有人能帮我一下吗?当给定一个序列时,请求会复制密钥,正如您在官方文档示例中看到的那样
有效负载={'key1':'value1','key2':['value2','value3']}
>>>r=请求。获取('https://httpbin.org/get,参数=有效载荷)
>>>打印(r.url)
https://httpbin.org/get?key1=value1&key2=value2&key2=value3
注意key2=value2
和key2=value3
,这是多个值的标准编码(也有其他值,例如逗号或分号分隔的值,或在PHP中用[]
后缀的“魔术”键名)
但是,根据您的服务器端框架,可能需要使用特殊的API来获取列表中的值,否则您可能只获取第一个或最后一个,因为查询字符串被解释为1:1 dict(这里您只获取最后一个)
因此,您的解决方案是:
通常,字符串是来回发送的。在这种情况下,您可以尝试:
PARAMS={'id':'1,2,3,4','department':'hr'}
在服务器端,您需要使用ID.split(',')对ID进行解码。然后再次获得四个独立值。这很可能是服务器端问题。检查服务器是否按预期分析
id
字段。如果您可以在解析id
字段的位置发布服务器代码,那就更好了。您希望这个结果=>id=1,2,3,4
?这是否回答了您的问题?