我有一些代码可以发送一个get请求并返回93个参数的列表,我想使用每个参数来发出另一个get请求。问题是运行大约需要15分钟,我想加快速度。我在请求库中使用了会话对象,但这还不够好,因此我想尝试多处理,但是我很难解决这个问题。
import requests
params_url = r'URL'
headers = {
'authorization': 'Token sdfgsdfgsdfg'
}
response = requests.get(params_url, headers = headers)
data = response.json()
params = data['data']
s = requests.Session()
samp_url = s.get(r'SESSION_URL',headers=headers)
for param in params:
ent_url = r'SESSION_URL'+param+r'&RESULT_FORMAT'
resp = s.get(ent_url, headers = headers)
print(resp)
目前作为测试,我只是打印响应代码,但是我将需要对数据执行其他操作(实际上只是将它们全部组合成一个数据帧)。每个响应代码为200,这很好。实施多处理以加快处理速度的最佳方法是什么?
答案 0 :(得分:0)
您可以尝试joblib
from joblib import Parallel, delayed
def p_me(param,s):
ent_url = r'SESSION_URL'+param+r'&RESULT_FORMAT'
resp = s.get(ent_url, headers = headers)
return resp
w = Parallel(n_jobs=-1,verbose=0)(delayed(p_me)(param,s) for param in params)