教育类LSTM股票预测项目:Yahoo数据读取报TypeError错误求助
解决Yahoo财经数据读取的TypeError问题
在教育类LSTM股票预测项目中,使用web.DataReader获取苹果(AAPL)股票数据时触发错误,错误提示为TypeError: 字符串索引必须为整数。
原代码
#load Data company = 'AAPL' start = dt.datetime(2021,12,17) end = dt.datetime(2022,12,17) data = web.DataReader(company,'yahoo',start,end) print(data)
报错信息
TypeError Traceback (most recent call last) <ipython-input-15-282e8a3c419c> in <module> 3 start = dt.datetime(2021,12,17) 4 end = dt.datetime(2022,12,17) ----> 5 data = web.DataReader(company,'yahoo',start,end) 6 print(data)
错误提示:TypeError: 字符串索引必须为整数
问题原因及解决方案
问题出在Yahoo财经官方API接口变更,导致原pandas_datareader的'yahoo'数据源无法正常解析返回内容。推荐使用yfinance库替代,这是目前稳定支持Yahoo财经数据获取的工具:
- 安装yfinance库
pip install yfinance
- 修改后的代码
import yfinance as yf import datetime as dt # 加载数据 company = 'AAPL' start = dt.datetime(2021,12,17) end = dt.datetime(2022,12,17) data = yf.download(company, start=start, end=end) print(data)
若仍想使用pandas_datareader,需指定适配新接口的数据源,但yfinance的兼容性和稳定性更佳。
内容的提问来源于stack exchange,提问作者Vansh Gupta
相关产品推荐
相关产品推荐

