Определите функцию для повторной попытки через несколько секунд из-за ограничения скорости API - PullRequest
0 голосов
/ 21 июня 2020

API с ограничением скорости 30 запросов в секунду.

Итак, когда я хочу l oop список, содержащий более 30 значений в этот API, возникает ошибка, например:

 JSONDecodeError: Expecting value: line 1 column 1 (char 0)

Ниже приведен пример кода:

def financial_ratio(tick):
    r = requests.get('https://))
    content = json.loads(r.text)
    df = pd.DataFrame.from_dict(content).reset_index()
    financial_ratio_df = pd.pivot(df, index = 'symbol', columns = 'index', values = 'metric')
    return financial_ratio_df
    
@retry(Exception, delay=5, tries=3) # retry when exception is raised
def financial_ratio_multiple_stock(stock_list):
    stock_data = []
    for stock in stock_list:
        stock_data.append(financial_ratio(stock))
    appended_data = pd.concat(stock_data)
    return appended_data

Сначала я определил функцию для одного значения, а затем я определяю другую функцию для l oop списка в этой функции . Повтор не работает. Я хочу повторить попытку через 5 секунд, когда возникает ошибка.

Можно ли разделить список на фрагменты меньше 30, скажем, 29 и l oop через эти фрагменты?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...