您这里有几个问题需要解决。首先,您需要修正认证设置,并且更正get
调用中的关键字参数用法。
认证修复
根据您问题中提到的Swagger文档,看起来有一个login
端点,您需要向其执行post
请求以完成API的认证。如果成功,您将获得一个会话令牌,用以证明您已登录。利用这个令牌,您可以创建进行后续请求所需的头信息。
import requests
data = {
"userName": "xxxxx",
"password": "xxxxx",
"acceptedTerms": True
}
# 向登录接口发送POST请求
login_response = requests.post("https://api-datalab.encoura.org/v1/login", json=data)
# 解析登录响应得到会话令牌
res_body = login_response.json()
# 注意:大小写需精确匹配!
headers = {
"Authorization": f"Bearer {res_body['sessionToken']}",
"x-api-key": "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
"Organization": "X"
}
修正语法
您当前将kwargs
作为列表传递,但根据requests库的文档,它们应当是字典形式。
# ...
response = requests.get("https://api-datalab.encoura.org/v1/datacenter/exports", headers=headers, params=get_exports)