我正在尝试将参数传递到我的REST API get请求中,如下所示:
parameters = {'key':value}
response = requests.get('some url', params= parameters)
但我使用的API使用url-path而不是查询参数。我想要它:
/api/resource/parametervalue
它就像:
/api/resource?parameter=value
我已经在网上搜索过我是否能以某种方式改变响应的内容,但我似乎无法找到它。我该怎么办?
谢谢!
答案 0 :(得分:0)
response = requests.get('some url'+'/'parameters)//url/api/resource/parametervalue it's a url
response = requests.get('some url',params)//url/api/resource?params it't a url with params
答案 1 :(得分:0)
params
可选参数将在源代码here中定义的查询字符串之前添加?
。
在致电requests.get
>>> parameters = ('param', 'value')
>>> base_url = 'http://host/api/resource'
>>> query = ''.join((parameters[0], parameters[1]))
>>> url = '/'.join((base_url, query))
所以url
变为:
>>> url
'http://host/api/resource/paramvalue'
>>> response = requests.get(url)
如果您在不同时间使用的同一主机中有不同的路径,您甚至可以将base_url
分解为host
和path
,然后加入host
,{ {1}}和path
。请记住,query
方法只需要一个可迭代的参数。