Python 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的值。有人能帮我一下吗?当给定

我面临一个问题,需要在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
的值。有人能帮我一下吗?

当给定一个序列时,请求会复制密钥,正如您在官方文档示例中看到的那样

有效负载={'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(这里您只获取最后一个)

因此,您的解决方案是:

  • 修复服务器端,使用适当的API为一个键获取多个值
  • 或者为多值查询字符串定义自己的编码,并在执行请求时显式使用该编码(以及在服务器端解析请求时,除非框架内置了对该编码的支持)

  • 通常,字符串是来回发送的。在这种情况下,您可以尝试:

    PARAMS={'id':'1,2,3,4','department':'hr'}


    在服务器端,您需要使用ID.split(',')对ID进行解码。然后再次获得四个独立值。

    这很可能是服务器端问题。检查服务器是否按预期分析
    id
    字段。如果您可以在解析
    id
    字段的位置发布服务器代码,那就更好了。

    您希望这个结果=>
    id=1,2,3,4
    ?这是否回答了您的问题?