Python 处理可变数量的关键字参数以发送请求

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

与Python 2.7相关


使用
请求时,如何通过数量可变的
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):-(感谢您的回复,这确实很有用,目前可能已经足够了。我将把问题留一段时间,看看是否有人能给出更好的回复