YFinance -tickerData.info 不适用于某些股票

Posted

技术标签:

【中文标题】YFinance -tickerData.info 不适用于某些股票【英文标题】:YFinance - tickerData.info not working for some stocks 【发布时间】:2020-06-13 14:55:43 【问题描述】:
import yfinance as yf

#define the ticker symbol
tickerSymbol = "AFT.NZ"

#get data on this ticker
tickerData = yf.Ticker(tickerSymbol)
print(tickerData.info)

这似乎不起作用。 IndexError: list index out of range

将“AFT.NZ”替换为“MSFT”或“FPH.NZ”即可。去雅虎网站,看不出它为什么没有数据。

更令人困惑的是,将print(tickerData.info) 替换为tickerDf = tickerData.history(period='max') 确实会打印一些数据。

我需要这些信息,因为我想要公司的全名以及股票交易的货币。这就是为什么仅仅拥有价格数据不是解决方案的原因。

AFT.NZ 只是一个例子,NZX50 上的大多数其他人似乎也有同样的问题。

【问题讨论】:

【参考方案1】:

williamsiuhang 提出了一个合并请求来解决这个问题,该请求已经存在 9 天了。 https://github.com/ranaroussi/yfinance/pull/371/commits/7e137357296a1df177399d26543e889848efc021

我自己手动进行了更改,进入 base.py(在 your_py_dir\Lib\site-packages\yfinance 中)并更改第 286 行:

旧线:

self._institutional_holders = holders[1]

换行:

self._institutional_holders = holders[1] if len(holders) > 1 else []

【讨论】:

6 个月后仍未修复,但您的解决方案很简单并且仍然有效。【参考方案2】:

我也遇到了同样的问题,看到github上有很多帖子都出现同样的错误。

我已经通过 try & 修复了错误,但在 yfinance 的 base.py 文件中除外

第 282 行

    # holders
    try:
        url = "//holders".format(self._scrape_url, self.ticker)
        holders = _pd.read_html(url)
        self._major_holders = holders[0]
        self._institutional_holders = holders[1]

        if 'Date Reported' in self._institutional_holders:
            self._institutional_holders['Date Reported'] = _pd.to_datetime(
                self._institutional_holders['Date Reported'])
        if '% Out' in self._institutional_holders:
            self._institutional_holders['% Out'] = self._institutional_holders[
            '   % Out'].str.replace('%', '').astype(float)/100
    except:
        print("institutional_holders error")

不是一个很好的解决方案,但它可以为我运行。我不是一个优秀的程序员,所以我希望开发者能以更微妙的方式解决这个问题。

【讨论】:

以上是关于YFinance -tickerData.info 不适用于某些股票的主要内容,如果未能解决你的问题,请参考以下文章

如何抑制 yfinance 的异常?

如何使用 yfinance 下载数据修复此错误

Yfinance 数据未使用 mplfinance 绘制

从 yfinance 操纵日期

YFINANCE:检索更多ETF数据

Yfinance:同时下载多只股票的多个参数(beta、市值等)?