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

使用pandas_datareader获取雅虎股票数据时遭遇TypeError报错

问题:使用pandas_datareader获取Yahoo股票数据报错TypeError

未修改原有代码,调用web.DataReader("AAPL", 'yahoo', start, end)时出现TypeError: string indices must be integers错误。

原代码

import datetime as dt
from datetime import datetime, timedelta, date
import pandas_datareader.data as web

start = date(2010,10,1)
end = datetime.now()

df = web.DataReader("AAPL", 'yahoo', start, end)
print(df)

完整错误栈

Traceback (most recent call last):
  File "d:\code\newgen\newmain.py", line 60, in <module>
    df = web.DataReader("AAPL", 'yahoo', start, end)
  File "C:\Users\Owner\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\LocalCache\local-packages\Python310\site-packages\pandas\util\_decorators.py", line 211, in wrapper
    return func(*args, **kwargs)
  File "C:\Users\Owner\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\LocalCache\local-packages\Python310\site-packages\pandas_datareader\data.py", line 379, in DataReader
    ).read()
  File "C:\Users\Owner\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\LocalCache\local-packages\Python310\site-packages\pandas_datareader\base.py", line 253, in read
    df = self._read_one_data(self.url, params=self._get_params(self.symbols))
  File "C:\Users\Owner\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\LocalCache\local-packages\Python310\site-packages\pandas_datareader\yahoo\daily.py", line 153, in _read_one_data
    data = j["context"]["dispatcher"]["stores"]["HistoricalPriceStore"]
TypeError: string indices must be integers

原因及解决方案

错误根源是Yahoo Finance的API数据结构发生变更,而pandas_datareader的Yahoo数据源模块已停止维护,无法适配新结构。

解决方法是改用维护活跃的yfinance库:

  1. 安装yfinance
pip install yfinance
  1. 修改代码为:
import datetime as dt
from datetime import datetime, date
import yfinance as yf

start = date(2010,10,1)
end = datetime.now()

df = yf.download("AAPL", start=start, end=end)
print(df)

yfinance返回的数据格式与原pandas_datareader结果一致,无需调整后续数据处理逻辑。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 22:20:40