首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >在python中尝试从api端点获取数据时发生了错误的密钥错误吗?

在python中尝试从api端点获取数据时发生了错误的密钥错误吗?
EN

Stack Overflow用户
提问于 2020-11-25 17:51:25
回答 1查看 222关注 0票数 0

我试图使用request从api端点获取数据,但是我得到了一个错误的密钥。在我的例子中,我提供了api键和端点url,所以我使用request获取数据的json内容,然后使用pandas创建数据框架。我查看了SO,但没有发现如何克服这一问题。有没有人有可能的想法或尝试来解决这个问题?如何从api端点正确地获取数据?有什么想法吗?

我的尝试

我试图从这个站点获取数据:市场数据

代码语言:javascript
代码运行次数:0
运行
复制
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)

但在运行上述代码后,我得到了这个错误:

“不良API密钥”

我访问了这个api并得到了如下说明:

你好,您的自定义API键是********---****-3d19012d527d显示--请将您的API密钥复制并粘贴到下面Swagger窗口的api_key文本框中,并开始探索该API。当您从应用程序发出API请求时,请在Header中使用您的自定义密钥作为名称值对API_KEY:Value。

我的上述尝试有什么错误?如何从本站上的任何API端点正确地获取数据?有人能建议使用jsonrequestpandas从api端点获取数据的可能方法吗?有什么想法吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-11-25 17:59:26

你用你的请求发送了一个标题。该标头名为Ocp-Apim-Subscription-Key。从你分享的电子邮件中判断,他们期望标题包含一对名为API_KEY的邮件。

如果这就是问题所在,下面的问题应该得到解决。

代码语言:javascript
代码运行次数:0
运行
复制
headers = {'API_KEY': '{key}'.format(key=api_key)}

将字符串格式化为字符串变量的值是多余的。可以通过删除对format()的调用来清除代码

代码语言:javascript
代码运行次数:0
运行
复制
headers = {'API_KEY': api_key}

有一件事要记住

你在一个公共网站上发布了你的API密钥。考虑到API密钥用于身份验证,最好的做法是取消对当前密钥的身份验证并请求一个新密钥,以防止未经授权的使用。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65010190

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档