YFinance-tickerData.info对某些股票无效


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",效果良好。去雅虎网站,不明白为什么它没有数据。

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

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

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

有一个来自williamsiuhang的合并请求来修复当前已存在9天的问题。https://github.com/ranaroussi/yfinance/pull/371/commits/7e137357296a1df177399d26543e889848efc021

我只是自己手动更改,进入base.py(在your_py_dir\Lib\site-packages\yfnance中(,然后更改第286:行

旧线路:

self._institutional_holders = holders[1]

新品:

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

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

我已经用try&除了在yfnance 的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")

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

相关内容

  • 没有找到相关文章

最新更新