Pandas Datareader无法获取Yahoo Finance数据?求助排查故障
问题分析与解决办法
这个问题是普遍存在的,并非你本地代码的问题,根源是Yahoo Finance调整了API的响应数据格式,导致旧版本的pandas-datareader无法正确解析返回内容,进而抛出string indices must be integers错误。目前已有大量用户在相关项目的Issue区反馈过该问题。
除更换数据源外,你可以尝试以下几种解决方案:
升级
pandas-datareader到最新版本
开发团队通常会针对Yahoo的API变更快速修复适配逻辑,执行以下命令升级:pip install --upgrade pandas-datareader升级后重新测试拉取数据,大概率能解决问题。
直接使用Yahoo官方维护的
yfinance库pandas-datareader对Yahoo数据源的支持其实依赖yfinance,但直接使用官方库会更稳定,示例代码如下:import yfinance as yf # 拉取苹果公司2023年全年股价数据 stock_data = yf.download("AAPL", start="2023-01-01", end="2024-01-01") print(stock_data.head())临时修复源码(不推荐)
如果升级后仍未解决,可以手动修改pandas-datareader中处理Yahoo响应的模块(通常是site-packages/pandas_datareader/yahoo.py),调整响应解析逻辑,将返回的字符串转为可索引的JSON结构。但这种方法会被后续版本升级覆盖,仅作为临时应急方案。
内容的提问来源于stack exchange,提问作者aidi0408
相关产品推荐
相关产品推荐

