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

使用pandas_datareader从Yahoo Finance拉取数据遇TypeError求助

解决pandas_datareader从Yahoo Finance导入数据报错TypeError的问题

这个错误的核心原因是pandas_datareader内置的Yahoo数据源模块已过时——Yahoo Finance的页面接口结构更新后,旧的解析逻辑无法正确提取数据,导致代码试图用字符串索引去访问一个非JSON对象,触发TypeError: string indices must be integers, not 'str'。

以下是两种可行的解决方案:

方案一:使用yfinance替代(推荐)

yfinance是目前维护最活跃的Yahoo Finance数据获取工具,完全兼容原pandas_datareader的输出格式:

  1. 安装yfinance:
pip install yfinance
  1. 替换原有代码:
import numpy as np
import pandas as pd
import yfinance as yf

# 获取PG股票1995年至今的数据
PG = yf.download('PG', start='1995-1-1')

方案二:修复pandas_datareader的Yahoo模块(不推荐,稳定性差)

如果坚持使用pandas_datareader,可以安装第三方维护的修复版本:

  1. 安装修复版:
pip install git+https://github.com/ranaroussi/pandas_datareader.git
  1. 原有代码无需修改即可尝试运行,但该版本仍可能因Yahoo接口更新再次失效。

注意事项

  • 此问题与Pandas版本无关,更新Pandas无法解决问题。
  • 股票代码大小写不影响结果,但规范写法为大写PG。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.29 17:53:12