用于api调用的Python函数



我正试图使用python为几个api调用创建一个通用函数,如下所示-

import json
import requests
def api_call(url,payload,headers,request_type,auth):
response = requests.request(request_type, url, payload, auth, headers)
return response

当我直接在函数外部使用时,这是有效的,但当我调用函数并传递参数时,它会抛出如下异常。

url = "https://api.xxxxxx"
payload = json.dumps({
"Ids": ["12345","69845"],
"startDate": "2022-01-01",
"endDate": "2022-05-10"
})
headers = {
'Accept': 'application/json',
'Content-Type': 'application/json',
'x-api-key': 'yyyyyyyy'}
request_type = 'post'
auth = None
resp = api_call(url=url, payload=payload, headers=headers, request_type=request_type, auth=auth)

我看到的错误如下-

TypeError: request() takes 2 positional arguments but 5 were given

我该如何解决此问题?有人能给我指路吗?

谢谢!

你必须像这样反转你的函数,

def api_call(url,payload,headers,request_type,auth):
response = requests.request(request_type, url, payload=payload, headers=headers)
return response

既然auth = None,你就不需要通过它。

request(method, url, **kwargs):
  • methodurl是位置参数,rest是关键字参数

最新更新