无法通过GET方法连接EIA API,请求返回403错误
EIA API请求返回403错误的解决方法
- 问题根源:EIA的公开API强制要求请求携带合法的API密钥,无密钥的请求会被服务器拦截,返回403状态码。
- 解决流程:
- 前往EIA官网注册账号,免费获取API密钥。
- 在请求URL末尾追加
&api_key=你的密钥参数,或者通过请求头传递密钥。
- 修改后的可运行代码示例:
import pandas as pd import requests # 替换为你自己的EIA API密钥 API_KEY = "your_eia_api_key" # 注意:如果需要获取你提供页面的RWTC数据,把facets[series][]=RBRTE改成facets[series][]=RWTC request_url = f"https://api.eia.gov/v2/petroleum/pri/spt/data/?frequency=daily&data[0]=value&facets[series][]=RBRTE&sort[0][column]=period&sort[0][direction]=desc&offset=0&length=5000&api_key={API_KEY}" call_eia = requests.get(request_url) print(call_eia) # 请求成功后解析数据 if call_eia.status_code == 200: response_data = call_eia.json() df = pd.DataFrame(response_data["response"]["data"]) print(df.head())
- 额外提醒:你当前代码请求的是
RBRTE系列数据,但你提供的数据页面对应RWTC系列,若需匹配页面数据,记得修改URL中的facets[series][]=RBRTE为facets[series][]=RWTC。
内容的提问来源于stack exchange,提问作者Ninja
相关产品推荐
相关产品推荐

