Я пытаюсь извлечь несколько тикеров из yfinance API и сохранить их в файл csv (всего у меня есть 1000 тикеров, для которых мне нужно получить данные, эти данные представляют собой всю таблицу даты, открытую, высокую, низкую, close, volume и т. д. и т. д.), пока я могу успешно получить данные для 1 тикера, используя следующий код Python:
import yfinance as yf
def yfinance(ticker_symbol):
ticker_data = yf.Ticker(ticker_symbol)
tickerDF = ticker_data.history(period='1d', start='2020-09-30', end='2020-10-31')
print(tickerDF)
yfinance('000001.SS')
Однако, если я попробую использовать несколько тикеров, это не сработает. Следуя документации yfinance, в которой говорится, что для использования нескольких тикеров необходимо:
tickers = yf.Tickers('msft aapl goog')
# ^ returns a named tuple of Ticker objects
# access each ticker using (example)
tickers.tickers.MSFT.info
tickers.tickers.AAPL.history(period="1mo")
tickers.tickers.GOOG.actions
У меня есть пара проблем, в документах используется строка, такая как 'aapl', все тикеры имеют цифровой формат, например '000001.SS', часть .SS оказывается проблемой при передаче ее в код:
tickers.tickers.000001.SS.history(period="1mo")
# Clearly this wont for for a start
Следующая проблема, с которой я столкнулся, заключается в том, что даже если я передаю, например, 3 тикера моей функции, например:
yfinance('000001.SS 000050.KS 00006.KS')
# similar to yfinance docs of tickers = yf.Tickers('msft aapl goog')
Я получаю такие ошибки, как:
AttributeError: 'Tickers' object has no attribute '000001.SS'
(Я также пытался запустить их в цикле for и передать каждое из них объекту Tickers, но получил ту же ошибку.)
Я застрял, я не знаю, как передать несколько тикеров в yfinance и получить обратно данные, которые мне нужны, а документы не очень полезны.
Кто-нибудь может мне с этим помочь?