无API获取现货黄金价格:Pandas Datareader查询失败求替代方案
解决Pandas Datareader查询现货黄金数据失败的替代方案
问题说明
运行以下代码查询现货黄金数据时出现报错:
import pandas as pd from pandas_datareader import data import yfinance as yf yf.pdr_override() data.DataReader("GOLDAMGBD228NLBM", data_source="fred", start="2022-06-01")
报错信息:
GOLDAMGBD228NLBM: No data found for this date range, symbol may be delisted
原因是GOLDAMGBD228NLBM(伦敦上午定盘价)的数据源已停止更新,无法获取指定日期后的有效数据。
替代方法
方法1:更换FRED的有效黄金数据代码
使用FRED中仍在维护的黄金定盘价代码,比如伦敦下午定盘价(GOLDPMGBD228NLBM),可正常获取最新数据:
import pandas as pd from pandas_datareader import data import yfinance as yf yf.pdr_override() # 替换为持续更新的伦敦下午定盘价代码 gold_data = data.DataReader("GOLDPMGBD228NLBM", data_source="fred", start="2022-06-01") print(gold_data.head())
方法2:通过yfinance查询黄金ETF
追踪现货黄金价格的ETF(如GLD)数据稳定且更新及时,可直接用yfinance获取:
import yfinance as yf # 查询SPDR黄金ETF(GLD)的历史数据,与现货黄金价格高度联动 gold_data = yf.download("GLD", start="2022-06-01") print(gold_data.head())
方法3:对接其他可靠数据源
若需要更精准的现货黄金数据,可使用pandas_datareader对接Alpha Vantage等数据源,部分数据源需申请API密钥,可按需自行配置。
内容的提问来源于stack exchange,提问作者matsuo_basho
相关产品推荐
相关产品推荐

