使用Python中的请求库从Microsoft Academic Knowledge REST API获取数据

使用Python中的请求库从Microsoft Academic Knowledge REST API获取数据,python,api,python-requests,Python,Api,Python Requests,我不熟悉使用请求库和API。我想使用并将结果放在一个数据框中。到目前为止,我得到的是: import requests url = 'https://api.labs.cognitive.microsoft.com/academic/v1.0/evaluate?' params = { "expr":"Composite(AA.AuN=='jaime teevan')", "count":2, "at

我不熟悉使用请求库和API。我想使用并将结果放在一个数据框中。到目前为止,我得到的是:

import requests

url = 'https://api.labs.cognitive.microsoft.com/academic/v1.0/evaluate?'
params = {
    "expr":"Composite(AA.AuN=='jaime teevan')",
    "count":2,
    "attributes":"Ti,Y,CC,AA.AuN,AA.AuId",
}
r = requests.post(url, params=params)

print(r.status_code)
print(r.json())
我有一把主键,不知道放在哪里。谢谢。

密钥有点隐藏,因此您需要将密钥作为请求头的一部分提交:

import requests

subscription_key = 'XXX'

url = 'https://api.labs.cognitive.microsoft.com/academic/v1.0/evaluate'
params = {
    "expr": "Composite(AA.AuN=='jaime teevan')",
    "count": 2,
    "attributes": "Ti,Y,CC,AA.AuN,AA.AuId"
}
headers = {'Ocp-Apim-Subscription-Key': subscription_key}

r = requests.post(url, params=params, headers=headers)

print(r.status_code)
print(r.json())

我猜主键是指订阅密钥,是吗?这是正确的。嗯,这最终给出HTTP状态500(内部服务错误)。在Python中,我得到了错误“JSONDecodeError:Expecting value:第1行第1列(char 0)”,知道为什么吗(是的,我确实用有效的密钥替换了订阅密钥)?谢谢。您想使用
GET evaluate
还是
POST evaluate
(参见答案中的链接)?因为标题是GET,方法是POST。对于
POST
我们可能需要更改正文和标题。content-typeYes,看起来像
GET evaluate
是我要找的。非常感谢。