一部のコードを非同期に書き直す方法を考えようとしています。API から ~7500 のデータセットをダウンロードし、それらを .csv に書き込む必要があります。再現可能な例を次に示します (アルファ バンテージ用の無料の API キーがあると仮定します)。
from alpha_vantage.timeseries import TimeSeries
import pandas as pd
import numpy as np
api_key = ""
def get_ts(symbol):
ts = TimeSeries(key=api_key, output_format='pandas')
data, meta_data = ts.get_daily_adjusted(symbol=symbol, outputsize='full')
fname = "./data_dump/{}_data.csv".format(symbol)
data.to_csv(fname)
symbols = ['AAPL', 'GOOG', 'TSLA', 'MSFT']
for s in symbols:
get_ts(s)
APIを作った人がalpha_vantage
asyncioで使う記事を書いてくれているのですが、ここのようにデータのpullとcsvの書き込みの2つの関数を作るべきか迷っています。
以前に asyncio を使用したことがないので、ポインタがあれば大歓迎です。可能であれば、ダウンロード時間を 3 時間以内に短縮したいと考えています。
編集:もう 1 つの注意点は、私はこれについて研究者を支援しているため、Jupyter ノートブックを使用していることです。asyncio に関する注意事項はこちらを参照してください。