Всем салют. Есть некоторый скрипт, который с помощью API подтягивает исторические данные о стоимости акций и заносит их в бд Postgre. Все тикеры акций занесены в словарь, по которому я и пробегаюсь, но почему-то он пробегается только по первому элементу словаря, а затем останавливается. Сам код.
import psycopg2
import yfinance as yf
import datetime
from datetime import timedelta
test_arist = dict(
AWR='AWR', # Словарь с тикерами дивидендных аристократов.
DOV='DOV',
NWN='NWN',
GPC='GPC',
PG='PG',
PH='PH',
EMR='EMR',
MMM='MMM',
CINF='CINF',
KO='KO'
)
date1 = datetime.date(1950, 1, 21)
date2 = datetime.date(2020, 9, 23)
def import_func(date_his):
global dat, i
con = psycopg2.connect(
database='base',
user='user',
password='qwerty',
host='127.0.0.1',
port='5432'
)
c = (dat.loc[date_his, 'Close'])
o = (dat.loc[date_his, 'Open'])
h = (dat.loc[date_his, 'High'])
l = (dat.loc[date_his, 'Low'])
cur = con.cursor()
cur.execute("INSERT INTO stocks(ticker, date_update, open, close, high, low)"
"VALUES (%s, %s, %s, %s, %s, %s)",
(key, x, o, c, h, l))
con.commit()
con.close()
for key in test_arist:
tic = yf.Ticker(key)
dat = tic.history(period="max", interval="1d")
while date1 <= date2:
x = date1.strftime('%Y-%m-%d')
try:
date1 = date1 + timedelta(1)
import_func(x)
except KeyError:
date1 = date1 + timedelta(1)
Что не так? Заранее спасибо за помощь.