You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Python调用EIA API获取数据时出现报错,请求排查解决

问题排查与解决

核心问题分析

报错出现在eia库的data_by_series方法中,日期解析环节触发异常,主要可能原因有三点:

  • 无效API密钥:代码里的abcxyz是占位符,必须替换为EIA官网申请的真实有效密钥。
  • Series ID不匹配:你要抓取的是布伦特原油日度数据(对应页面),但代码中使用的PET.RWTC.D是WTI原油的Series ID,正确的布伦特原油日度Series ID应为PET.RBRTE.D。
  • 第三方库兼容性问题:该eia库的日期解析逻辑未适配EIA API的最新返回格式,导致字符串处理失败。

解决方案

方案1:修正参数后继续使用eia库

  1. 替换API密钥:将api_key = "abcxyz"改为你在EIA官网申请的真实密钥。
  2. 修正Series ID:把series_ID='PET.RWTC.D'替换为series_ID='PET.RBRTE.D'。
  3. (可选)更新库版本:执行pip install --upgrade eia确保使用最新兼容版本。

修正后的代码:

import pandas as pd
import eia

def retrieve_data():
    # 替换为你的真实EIA API密钥
    api_key = "你的真实API密钥"
    api = eia.API(api_key)

    # 布伦特原油日度数据的正确Series ID
    series_ID='PET.RBRTE.D'
    series_search = api.data_by_series(series=series_ID)
    df = pd.DataFrame(series_search)    
    df.index.names = ['Date']
    df.columns=[ "Price"]
    df.index = df.index.str.replace('^([\d]{4})\s([\d]{2})([\d]{2})\s[\d]{2}', r'\1-\2-\3',regex=True)
    df.index = pd.to_datetime(df.index)
    return df

data = retrieve_data()
data.to_csv('Brent_Spot_Price_FOB.csv',index=True)

方案2:直接调用EIA API(规避第三方库依赖)

如果第三方库仍报错,可直接用requests发送请求,手动解析数据:

import pandas as pd
import requests

def retrieve_data():
    api_key = "你的真实API密钥"
    series_id = "PET.RBRTE.D"
    url = f"https://api.eia.gov/series/?api_key={api_key}&series_id={series_id}"
    
    response = requests.get(url)
    data = response.json()
    
    # 提取日期和价格数据
    rows = data['series'][0]['data']
    df = pd.DataFrame(rows, columns=['Date', 'Price'])
    # 转换日期格式(EIA返回的是YYYYMMDD格式)
    df['Date'] = pd.to_datetime(df['Date'], format='%Y%m%d')
    df.set_index('Date', inplace=True)
    # 转换价格为数值类型
    df['Price'] = pd.to_numeric(df['Price'])
    return df

data = retrieve_data()
data.to_csv('Brent_Spot_Price_FOB.csv', index=True)

验证步骤

  1. 确认API密钥有效:可在EIA API官方测试页面验证密钥权限。
  2. 核对Series ID:目标数据页面的「Data Series」板块可查看正确的Series ID。

内容的提问来源于stack exchange,提问作者Ninja

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.19 10:45:02