在python中尝试从api终结点获取数据时发生了坏键错误?

在python中尝试从api终结点获取数据时发生了坏键错误?,python,json,pandas,api,Python,Json,Pandas,Api,我试图使用请求从api端点获取数据,但出现了一个坏键错误。在我的例子中,我提供了api键和端点url,所以我使用request获取数据的json内容,然后使用pandas创建数据帧。我查看了,所以,但没有找到解决问题的线索。有没有人有可能想到或试图解决这个问题?如何正确地从api端点获取数据?有什么想法吗 我的尝试 我试图从此站点获取数据: 但在运行上述代码后,我出现了此错误: “错误的API密钥” 我访问并获得以下说明: 你好,Adam,您的自定义API密钥是 ********---***-3

我试图使用
请求
从api端点获取数据,但出现了一个坏键错误。在我的例子中,我提供了api键和端点url,所以我使用
request
获取数据的
json
内容,然后使用
pandas
创建数据帧。我查看了
,所以
,但没有找到解决问题的线索。有没有人有可能想到或试图解决这个问题?如何正确地从api端点获取数据?有什么想法吗

我的尝试

我试图从此站点获取数据:

但在运行上述代码后,我出现了此错误:

“错误的API密钥”

我访问并获得以下说明:

你好,Adam,您的自定义API密钥是 ********---***-3d19012d527d显示请将您的API密钥复制并粘贴到下面招摇窗口中的API密钥文本框中,然后开始 探索API。请将自定义密钥用作名称-值对 API_KEY:HTTP头中的值,当从用户发出API请求时 应用程序


我的上述尝试哪里错了?如何正确地从上的任何API端点获取数据?有谁能建议一种可能的方法,使用
json
request
pandas
从api端点获取数据?有什么想法吗?

您正在发送一个标题和请求。该标题名为
Ocp Apim订阅密钥
。根据您共享的电子邮件的长度判断,他们希望标题中包含一对名为
API\u KEY

如果这是一个问题,下面应该解决它

headers={'API\u KEY':'{KEY}'。格式(KEY=API\u KEY)}
将字符串格式化为字符串变量的值是多余的。通过删除对
format()

headers={'API\u KEY':API\u KEY}
有一件事要记住
您在公共站点上发布了API密钥。考虑到API密钥用于身份验证,最好的做法是取消对当前密钥的身份验证并请求一个新密钥,以防止未经授权的使用。

改为:
headers={'API\u key':'{key}'。format(key=API\u key)}
在他们的消息中指定。旁注:您可能不想让API密钥以纯文本显示here@PaulH如何将多个端点的数据提取到一个数据帧中?你介意就这个问题作一个可能的回答吗?非常感谢。关于使用
pandas.concat
构建数据帧,这里有很多问题。我建议先搜索这些。是的,这是可行的,但我不确定这和这个问题有什么关系。如果你想要一些咨询来帮助你解决一个更大的问题,我每小时收费50美元,最低收费1/2小时。我相信这相当于
头={'API_KEY':KEY}
,不是吗?
import requests
import pandas as pd

api_key = 'ec95a478-e46e-47f9-b57d-3d19012d527d'
url = 'https://apps.fas.usda.gov/OpenData/api/esr/countries'
headers = {'Ocp-Apim-Subscription-Key': '{key}'.format(key=api_key)}
jsonData = requests.get(url, headers=headers).json()
df = pd.read_json(json.dumps(jsonData)