python - 如何使用美国农业部 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”
解决方案
requests
基本身份验证与库的工作方式略有不同。你可以这样做:
from requests.auth import HTTPBasicAuth
resp = requests.get(url, auth=HTTPBasicAuth('mars_test_343343', None)
请注意,由于“不需要提供密码”的含糊不清,该None
值可能需要为空字符串''
。
推荐阅读
- android - 如何在 kotlin 的自定义布局中更改 layout_marginTop?
- javascript - React 状态在回调函数中保持不变
- javascript - 旭日形不完整段
- python - Python-Pandas ValueError: Series 的真值不明确。使用 a.empty、a.bool()、a.item()、a.any() 或 a.all()
- r - ggplot2 居中 ylab 标题
- c++ - 命令 PhaseScriptExecution 失败,退出代码为非零 wxwidgets
- angular - 在 Firebase 主机上使用 gulp 文件提供 gzip 文件
- linux - 如何删除字符?从日志文件名?
- javascript - 如何限制多个输入字段(使用 v-model)仅接受 Vue.js 中的数字(而不为每个输入字段重复代码)?
- ios - 关闭选择时的 WKWebView 选择触觉