执行股票数据获取代码时报错TypeError: 'module' object is not subscriptable
解决pandas_datareader调用时的TypeError: 'module' object is not subscriptable错误
问题场景
尝试通过pandas_datareader获取苹果公司(AAPL)2010-01-01至2020-12-30的股票数据,已知正确代码如下:
import numpy as np import pandas as pd import matplotlib.pyplot as plt import pandas_datareader as data start = "2010-01-01" end = "2020-12-30" df = data.DataReader('AAPL','yahoo', start, end) df.head()
但实际执行时因代码误写触发报错,错误信息:
TypeError Traceback (most recent call last) /tmp/ipykernel_13005/124255995.py in <module> 2 end = "2020-12-30" 3 ----> 4 df = data.DataReader(data['AAPL'],'yahoo', start, end) 5 df.head() TypeError: 'module' object is not subscriptable
错误原因
报错的核心是代码里的data['AAPL']:你导入的data是pandas_datareader模块对象,模块不支持下标([])访问操作,这里应该直接传入股票代码字符串'AAPL'作为DataReader的第一个参数。
修复方案
将错误的调用行替换为正确的写法即可:
df = data.DataReader('AAPL','yahoo', start, end)
执行后就能正常获取AAPL的股票数据,得到预期的结果。
内容的提问来源于stack exchange,提问作者Sarathi Manikandan
相关产品推荐
相关产品推荐

