0

我刚刚开发了一个代码来使用 yahoo_fin 模块从雅虎获取基本数据。这里是代码。问题是在从 20 只股票中检索信息后,它开始失败并且无法检索任何数据。知道如何解决这个问题吗?我使用了 time.sleep(10) 但没有工作。

这里是代码。...

import pandas as pd
import math
import numpy as np
import yfinance as yf
from pandas import ExcelWriter
import datetime
import yahoo_fin.stock_info as si
from datetime import datetime
import matplotlib.pyplot as plt
import seaborn as sns
import datetime as dt
pd.core.common.is_list_like = pd.api.types.is_list_like
import pandas_datareader.data as web
import time


count=0
DiagnosticsResearch=['GTH', 'MYGN', 'CSTL', 'LNTH', 'PSNL', 'SRDX', 'VIVO', 'FLDM', 'QTNT', 'OXFD', 'CNTG', 'ARA', 'DMTK', 'XGN', 'ENZ', 'STIM', 'BNGO', 'BWAY', 'BASI', 'CELC', 'MOTS', 'HTGM', 'NDRA']
tickers= DiagnosticsResearch


for i in range(len(tickers)):
    ticker=tickers[i]

    try:
        count=count +1 
        df_bs= pd.DataFrame(si.get_balance_sheet(ticker, yearly=True))
        df_is=pd.DataFrame(si.get_income_statement(ticker, yearly=True))
        df_cf=pd.DataFrame(si.get_cash_flow(ticker, yearly=True))
        print (tickers[i] + " Ok")
        if count>=20:
            time.sleep(20)
        else:
           time.sleep(1)
    except:
        print (tickers[i] + "->NOT OK")
        if count>=20:
            time.sleep(20)
        else:
           time.sleep(1)
        pass
    

...

输出是下一个

输出

有时它会检索 10 支股票,其他 20 支,其他 4 支

关于如何解决这个问题的任何想法?

亲切的问候

4

1 回答 1

0

完整的运行曾经执行过吗?

在您开发此代码并执行对 API 的调用时,是否有可能超过每小时 2000 次调用限制,或者您确定没有接近限制?

每个代码 3 次调用 * 20 次代码 = 每次运行可能在开发时调用 60 次。

我想知道是否也有速度限制。

于 2021-02-02T05:35:46.927 回答