python 学习日志
设备: MacBook Air
开发环境:Jupyter 6.1.4
问题:关于使用pandas-datareader获取Yahoo Finance数据失败的问题。
Trouble:
在使用pandas-datareader访问Yahoo Finance数据时,系统报错,显示无法访问端口。
上网查找原因后,发现是由于这个api接口已被弃用。通过搜索大神的解决经验,发现可能需要进入fix_yahoo_finance api的网站下载源文件。
然后,我抱着试一试的心理搜索了fix-yahoo-finance 0.1.37的网址:https://pypi.org/project/fix-yahoo-finance/
在Project description的部分,说明了fix-yahoo-finance的安装包被重命名为yfinance。由于backward-competability(反向兼容性)的问题,这个安装包在导入和使用时要用yfinance的名字,但是在导入和使用前,需要install并直接使用它。下面还告知了用户install和import的代码。
找到救星的我毫不犹豫地打开了terminal,复制了install代码 pip install yfinance --upgrade --no-cache-dir,回车,然后果然成果安装了yfinance。
接着我在python3里import了yfinance。
但小伙伴们,导入了新的包还不是最后一步,如果仅仅:
import pandas_datareader as pdr
import yfinance as fy
之后在获取数据时还是会报错。
很关键的一步是:
调用函数:yf.pdr_override()
网上的大神是这么操作的。
override在计算机科学技术里有覆盖的意思,可以理解为用新的访问途径替代了旧的访问途径。
但是,如果你这么写了代码,还是会报错!
(不要炸毛!
如果这么写就不会!(大神是这么写的!
我的理解是,既然原来的api接口被弃用了,那原来的pandas-datareader模块实际上就起不到访问的作用,所以,我们需要的是在借用yfinance访问Yahoo,然后用pandas-datareader获取数据。(我不知道自己的理解对不对
这样一来,在做好所有准备工作之后,再访问Yahoo的股票数据就成功啦!!!
感谢大神“第一段代码”!
感谢fix-yahoo-finance 0.1.37!
未来的码农会继续加油的!
参考CSDN大神操作:
大神的用户名:“第一段代码”