Python中使用API密钥调用API时权限错误问题排查
问题排查与修正
你的代码里有两个关键错误,直接导致了权限问题和后续的数据解析问题:
- 请求未传递headers参数:你已经定义了包含API密钥的headers字典,但调用
requests.get()时只传入了api_url,完全没把headers传送给API服务器,对方自然收不到你的权限凭证,返回无访问权限的错误。 - response.json调用错误:
response.json是方法对象,必须加括号调用response.json()才能解析返回的JSON数据,否则只会打印方法本身的引用,拿不到实际数据。
另外对照你给出的curl示例,Authorization头的格式'Authorization': 'MyKey'是符合要求的,只要确保把这个headers正确传递给请求即可。
修正后的代码如下:
import requests # 别忘了导入requests库,如果你代码里没写的话 api_url = 'https://api.balldontlie.io/v1/teams' api_key = 'MyKey' headers = { 'Authorization': api_key # 用变量替代硬编码,更便于维护 } response = requests.get(api_url, headers=headers) # 关键:将headers传入请求 if response.status_code == 200: data = response.json() # 调用json()方法解析数据 print(data) else: print(f"请求失败,状态码:{response.status_code}")
运行修正后的代码,应该就能正常通过权限验证并获取数据了。
内容的提问来源于stack exchange,提问作者user17980457
相关产品推荐
相关产品推荐

