Python 处理可变数量的关键字参数以发送请求
与Python 2.7相关Python 处理可变数量的关键字参数以发送请求,python,python-2.7,Python,Python 2.7,与Python 2.7相关 使用请求时,如何通过数量可变的kwarg构建请求 我使用requests模块直接与RESTAPI交互,RESTAPI需要可变数量的关键字参数才能成功 与重新编写相同的GET/POST请求代码不同,我希望在单个api类中维护它。然而,处理可变数量的参数似乎归结为一系列不太可读的if-else语句 例如: def request(self): try: if self.data: request = requests.po
使用
请求时,如何通过数量可变的kwarg
构建请求
我使用requests
模块直接与RESTAPI交互,RESTAPI需要可变数量的关键字参数才能成功
与重新编写相同的GET/POST请求代码不同,我希望在单个api
类中维护它。然而,处理可变数量的参数似乎归结为一系列不太可读的if-else
语句
例如:
def request(self):
try:
if self.data:
request = requests.post(url=self.url, headers=self.headers,
data=self.data, timeout=self.timeout, verify=False)
else:
request = requests.get(url=self.url, headers=self.headers,
timeout=self.timeout, verify=False)
...
...
请求属性最好是随时间生成的,并通过单个GET或POST请求传递(当然,上面的代码仍然是必需的,但这是次要的)。如果将属性默认为与请求的参数相同的值。POST
(基本上,无),这样您就可以安全地将它们作为关键字参数传递:
def request(self):
try:
request = requests.post(url=self.url, headers=self.headers,
data=self.data, timeout=self.timeout,
verify=False)
...
我刚刚简单地阅读了您的问题,但您正在寻找的可能是类似于def request(self,*args,**kwargs):
然后将args
直接传递到requests.post(args)
或尽可能使用字典。@Torxed-我不相信我能直接使用请求通过*args
。我想到了这种方法,但是某些关键字参数会同时影响GET
&POST
(例如Cookie):-(感谢您的回复,这确实很有用,目前可能已经足够了。我将把问题留一段时间,看看是否有人能给出更好的回复