首页 > 解决方案 > 使用 API 进行 Python 多处理

问题描述

我正在尝试通过在 Google Colab 上使用以下 python 代码来收集数据

tickers = ['TSLA', 'NVTA', 'SQ', 'ROKU', 'CRSP', 'PRLB', 'Z', 'TWOU', 'WORK', 'TDOC','TWST', 'ZS', 'ICE', 'SNPS', 'XLNX', 'IRDM', 'FB', 'SYRS', 'PACB', 'SE',
           'EDIT', 'MCRB', 'CGEN', 'PSTG', 'PD', 'IOVA', 'ILMN', 'NTLA', 'MTLS', 'SPOT','NSTG', 'TSM', 'SPLK', 'VCYT', 'CERS', 'TWLO', 'HUYA', 'DOCU', 'SSYS', 'PINS']

df = pd.DataFrame({})
for i in range(len(tickers)) : 
  t = tickers[i]
  df1 = pd.read_excel('https://stockrow.com/api/companies/'+t+'/financials.xlsx?dimension=Q&section=Metrics&sort=desc')
  df = df.append(df1)

为了节省时间,我尝试使用多处理。

def processInput(i):
  t =tickers[i]
  return pd.read_excel('https://stockrow.com/api/companies/'+t+'/financials.xlsx?dimension=Q&section=Metrics&sort=desc')
inputs = range(len(tickers))
pool = mp.Pool(processes=2)
results = pool.map(processInput, inputs)
summary = pd.concat(results)

这工作正常,但是当我更改为 processes=4 时,我收到错误。我不认为这是 CPU 的限制,因为我使用的是 Google Colab,并且代码非常简单。我有一种感觉,API 不允许同时进行多个访问。你能告诉我并解决这个问题吗?那将不胜感激。

标签: pythonapimultiprocessinggoogle-colaboratorypython-multiprocessing

解决方案


推荐阅读