Python 根据方法向API发送请求

Python 根据方法向API发送请求,python,python-requests,Python,Python Requests,我有一个APIClient类的方法。我需要优化if-else语句,以便在不使用条件层次结构的情况下处理所有HTTP方法。我怎么能做到?我试着用字典,但这似乎不是正确的方法 def make_request(self, method: str, request_url: str, data: dict=None, headers=None): url = self._build_url(request_url) try:

我有一个APIClient类的方法。我需要优化if-else语句,以便在不使用条件层次结构的情况下处理所有HTTP方法。我怎么能做到?我试着用字典,但这似乎不是正确的方法

      def make_request(self, method: str, request_url: str, data: dict=None, headers=None):
            url = self._build_url(request_url)
            try:
                if method == 'POST':
                    resp = requests.post(url, data=data, headers=headers, verify=False)
                elif method == 'GET':
                    resp = requests.get(url, headers=headers, verify=False)
                return resp
    
            except requests.exceptions.RequestException:
                raise APINotRespondingeError()
我使用了getattr()方法。注意,该方法参数应该是小写的

      def make_request(self, method: str, request_url: str, data: dict=None):
            url = self._build_url(request_url)
            try:
                get_response = getattr(requests, method, None)
                response =  get_response(url, data=data, headers=self.headers)
                response.raise_for_status()
                return response.json()
    
            except requests.exceptions.RequestException as err:
                status_code = None if err.response is None else err.response.status_code
                raise APIResponseError(error=err)