request.get python url-path而不是传入的查询参数

时间:2016-09-01 03:51:13

标签: python rest api get

我正在尝试将参数传递到我的REST API get请求中,如下所示:

parameters = {'key':value}

response = requests.get('some url', params= parameters)

但我使用的API使用url-path而不是查询参数。我想要它:

/api/resource/parametervalue

它就像:

/api/resource?parameter=value

我已经在网上搜索过我是否能以某种方式改变响应的内容,但我似乎无法找到它。我该怎么办?

谢谢!

2 个答案:

答案 0 :(得分:0)

你可以这样试试: 你需要的是一个url / api / resource / parametervalue

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分解为hostpath,然后加入host,{ {1}}和path。请记住,query方法只需要一个可迭代的参数。