首页 > 解决方案 > 如何使用美国农业部 API

问题描述

我正在尝试按照说明在 python 中从 USDA 的市场新闻 api 中提取数据,https://mymarketnews.ams.usda.gov/mymarketnews-api/authentication,但我收到 401 错误

import requests
url = 'https://marsapi.ams.usda.gov/services/v1.2/reports'
headers={'x-api-key':'mars_test_343343'}

resp = requests.get(url, headers= headers)
print(resp.status_code) 

我无法让它工作,文档说“在您的软件中,使用 API 密钥作为基本身份验证用户名值。您不需要提供密码。”,我对 API 调用很陌生,我该怎么做提供我的用户名作为 api-key 以便服务器对我进行身份验证?

注意:我在代码中使用我的实际 api-key 而不是“mars_test_343343”

标签: pythonpython-3.xapi

解决方案


requests基本身份验证与库的工作方式略有不同。你可以这样做:

from requests.auth import HTTPBasicAuth
resp = requests.get(url, auth=HTTPBasicAuth('mars_test_343343', None)

请注意,由于“不需要提供密码”的含糊不清,该None值可能需要为空字符串''


推荐阅读