Продолжайте запрашивать Yahoo Finance после отклонения запроса данных об акциях

Я пытаюсь получить данные о некоторых шведских компаниях, а также о финансах Python и Yahoo. Когда я добираюсь до какого-то тикера, такого как KIND-SDB.ST, я получаю

RemoteDataError: Unable to read URL: http://ichart.finance.yahoo.com/table.csv?a=1&ignore=.csv&s=KIND-SDB.ST&b=1&e=1&d=2&g=d&f=2017&c=2017

Как мне заставить Yahoo Finance получить эти данные, и если я не могу, как мне продолжить работу с остальным списком тикеров, даже если один из них поврежден?

Мой небольшой скрипт выглядит так:

start = datetime.date(2017,2,1)
end = datetime.date.today()


my_stocks = ['NEPA.ST','EVO.ST','KIND-SDB.ST','EVO.ST','ATCO-B.ST','KINV-B.ST','NDA-SEK.ST','SAND.ST','GRNG.ST','JM.ST','SAAB-B.ST','STAR-B.ST','ASSA-B.ST','INVE-B.ST','INDU-C.ST','SKF-B.ST']

pylab.rcParams['figure.figsize'] = (10, 4)   # Change the size of plots



def stockplotter(ticker,start,end,numb):
    stock = pdr.get_data_yahoo(ticker,start,end)
    plt.figure(numb)
    stock["Adj Close"].plot(grid = True)
    plt.title(ticker)
    plt.ylabel('SEK@close')
    numb+=1

numb = 1
for i in my_stocks:

    stockplotter(i, start, end, numb)
    numb += 1

person Plankton    schedule 01.03.2017    source источник


Ответы (1)


Чтобы продолжить выполнение запросов к API после возникновения ошибки, необходимо перехватить и обрабатывать исключение.

def stockplotter(ticker,start,end,numb):
    try:
        stock = pdr.get_data_yahoo(ticker,start,end)
    except RemoteDataError:
        pass

    plt.figure(numb)
    stock["Adj Close"].plot(grid = True)
    plt.title(ticker)
    plt.ylabel('SEK@close')
person MackM    schedule 01.03.2017