列表中的Python EST API多线程
我有一个Python列表,其中有大约380条记录需要发送到API,但单独发送很慢。我目前可以使用:列表中的Python EST API多线程,python,json,multithreading,api,Python,Json,Multithreading,Api,我有一个Python列表,其中有大约380条记录需要发送到API,但单独发送很慢。我目前可以使用: payload_length = len(payload) for i in range(0, payload_length): send_contacts(payload[i]) 发送个人联系人,但不知道是否可以启动x个线程。我读过关于异步请求和grequests的文章,但我无法理解代码 如果有任何建议,我将不胜感激。我希望这将有助于某人从请求转移到grequests,因为这花费了我更
payload_length = len(payload)
for i in range(0, payload_length):
send_contacts(payload[i])
发送个人联系人,但不知道是否可以启动x个线程。我读过关于异步请求和grequests的文章,但我无法理解代码
如果有任何建议,我将不胜感激。我希望这将有助于某人从请求转移到grequests,因为这花费了我更长的时间: 原始请求:
print ("Sending stuff requests...")
r = requests.post(url='https://rest.api.com/v1/lists/12345/contacts', data=json_payload, headers={'Content-Type': 'application/json','Authorization' : 'Basic '+ api_string}, timeout=5)
print(json.loads(r.text))
我发现我可以手动输入URL,在我的“for u in URL”中,我实际上得到了一个json有效负载列表,这些负载一次被触发,而不是多个URL。我确信这仍然是非常糟糕的代码,但这是对我的问题的一个快速和黑客修复:
print ("Sending stuff grequests...")
rs = (grequests.post('https://rest.api.com/v1/lists/12345/contacts', data=u[1], headers={'Content-Type':'application/json', 'Authorization' : 'Basic '+ api_string}) for u in urls)
responses = grequests.map(rs)
for response in responses:
print(json.loads(response.text))