使用yfinance获取Yahoo Finance财报时遇'regularMarketOpen' KeyError
解决yfinance KeyError: 'regularMarketOpen'问题
核心解决步骤
升级yfinance到最新版本:
这个错误主要是旧版yfinance未适配Yahoo Finance的API结构更新,执行命令升级:pip install --upgrade yfinance修正无效标的代码:
你代码中的FB已不再是Facebook的有效交易代码,当前官方代码为META,替换后可避免因标的不存在引发的异常:fang = ['META','AMZN','NFLX','GOOG']显式加载财务数据(可选):
如果升级和修正代码后仍有问题,可显式调用数据加载方法确保yfinance正确获取信息:import yfinance as yf import pandas as pd fang = ['META','AMZN','NFLX','GOOG'] dfs = [] for ticker_symbol in fang: ticker = yf.Ticker(ticker_symbol) # 显式触发数据加载 ticker.get_financials() ticker.get_balancesheet() ticker.get_cashflow() pnl = ticker.financials bs = ticker.balancesheet cf = ticker.cashflow fs = pd.concat([pnl, bs, cf]) data = fs.T.reset_index() data.columns = ['Date', *data.columns[1:]] data['Ticker'] = ticker_symbol dfs.append(data) # 查看前3列数据 data.iloc[:,:3]
关于旧解决方案的说明
你提到的data = utils.get_json(url+'/financials', proxy)是旧版本yfinance的代码实现,新版本已重构了数据获取逻辑,因此无需寻找这段代码,直接升级版本即可解决大部分兼容性问题。
内容的提问来源于stack exchange,提问作者jrpars1
相关产品推荐
相关产品推荐

