python - 使用 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§ion=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§ion=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 不允许同时进行多个访问。你能告诉我并解决这个问题吗?那将不胜感激。
解决方案
推荐阅读
- javascript - 计算百分比而不是总和
- php - LDAP - 服务器 A -> 服务器 B -> LDAP
- ruby-on-rails - rspec 中的块之前在每个测试之前运行,它应该只运行一次
- javascript - 服务端渲染 JavaScript 的正确方式
- java - bootstrap.yml 未在 Spring Boot 2 中加载
- python - 无法找到 dict.iteritems(class) 的覆盖
- batch-file - 批处理文件中 sqlcmd 的用户指定脚本和输出文件夹
- android - Kotlin Android 错误消息,但应用运行良好
- verilog - 在verilog中带有reg类型的inout
- php - PHPUnit\Framework\TestCase 找不到 Symfony 4