前言
使用传统的http发get请求时,如果传参为array数组,参数名称为a时,可以这样传值a=1&a=2&a=3,但是当只有一个时,这种方式就不合理了。
get请求还有另外一种方式传array数组,在参数名称后面加个[],如:a[]=1,2,3
参数名称一样
如果抓包看到是这种格式:http://www.example.com/?a=1&a=2&a=3
平常传参是字典键值对方式,这里key都一样了,python里面dict是不能有重复的,所以对于python代码可以这样写
import requests
url="http://www.example.com"
params=[
["a","1"],
["a","2"],
["a","3"]
]
r=requests.get(url,params=params)
print(r.url)
print(r.text)
get参数传array数组
如果get请求的参数直接是传的array数组,如抓包看到是这种格式:http://www.example.com/?a[]=1,2,3
import requests
from urllib.parse import unquote
url="http://www.example.com"
params={"a[]":"1,2,3"}
r=requests.get(url,params=params)
print(r.url)
print(unquote(r.url))
print(r.text)
也有可能这种格式 ?group[]=out&group[]=in
params = []
for k, v in args.items():
if isinstance(v, list):
for i in v:
params.append([k + '[]', i])
else:
params.append([k, v])
res = requests.get(url, params=params, headers=headers)
ret = res.json()