除了我創建的這個類函式之外,我的請求庫沒有任何問題。
import requests
from requests import request
class Business:
def __init__(self, url, api_key):
self.url = url
self.api_key = api_key
def send_valid_request(self, category, location):
headers = {'Authorization': 'Bearer ' api_key}
params = {'term': category, 'location': location}
response = request('GET', url, params, None, headers)
# ^^
# the error ^^
businesses = response.json()['businesses']
return businesses
def see_original_name(self, business_name, category, location):
businesses = self.send_valid_request(category, location)
...
category = input(f'Choose the business category: ')
location = input(f'Choose your business location: ')
url = '...'
api_key = '...'
business = Business(url, api_key)
while True:
question = input(
'What do you want to know? (choose: name search(NS)/general search(GS)) ')
if question == 'NS':
while True:
business_name = input('Buisness name: ')
business.see_original_name(business_name, category, location)
...
錯誤資訊:
Traceback (most recent call last):
File ".../mainapp.py", line ..., in <module>
business.see_original_name(business_name, category, location)
File ".../mainapp.py", line 20, in see_original_name
businesses = self.send_valid_request(category, location)
File ".../mainapp.py", line 15, in send_valid_request
response = request('GET', url, params, None, headers)
TypeError: request() takes 2 positional arguments but 5 were given
起初我只匯入請求并在回應時使用 get() 函式。錯誤后我將其更改為請求,但錯誤仍然存??在。我認為這與字典的 get() 函式有關,因為它只能接受 1 到 2 個引數。
Python版本:3.8.10
請求版本:2.28.1
uj5u.com熱心網友回復:
就像錯誤訊息說的那樣,requests.request只需要兩個位置引數。其他需要通過名稱傳遞:
response = request('GET', url, params=params, headers=headers)
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/529017.html
