我是在 python 中使用 API 的新手,目前正在尝试访问 API,但不断收到基于 API 文档的错误代码,这意味着我无权访问。我确实有一个带有 API 密钥的帐户,因此我假设传递给定密钥时出现问题。根据文档:
使用 shell,您只需在每个请求中传递正确的标头即可 卷曲“api_endpoint_here”-H“授权:YOUR_API_KEY”
我的代码如下:
api_url = 'https://api.balldontlie.io/v1/teams'
api_key = 'MyKey'
headers = {
'Authorization' : 'MyKey'
}
response = requests.get(api_url)
print("hello")
if response.status_code == 200:
data = response.json
print(data)
else:
print(response.status_code)
我在这里做错了什么?
您需要在 requests.get() 中将标头作为参数传递。这样想:请求如何知道您创建并称为“标头”的东西是它应该使用的东西。这是你必须时刻牢记的事情。不发生任何隐含的事情是 Python 的基本原则之一。
with requests.get(api_url, headers=headers) as response:
data = response.json()
您没有将标头正确传递给 API 请求。这是更正后的代码
import requests
api_url = 'https://api.balldontlie.io/v1/teams'
api_key = 'MyKey'
headers = {
'Authorization': 'Bearer ' + api_key # Make sure to prepend 'Bearer ' before your API key
}
response = requests.get(api_url, headers=headers)
if response.status_code == 200:
data = response.json()
print(data)
else:
print("Error:", response.status_code)
我在 requests.get() 函数中包含 headers 参数,传递包含 Authorization 标头和 API 密钥的 headers 字典。另外,请确保将 response.json() 作为函数调用以从响应中获取 JSON 数据。