Python3-每个线程使用n+;1函数中的值

Python3-每个线程使用n+;1函数中的值,python,python-3.x,Python,Python 3.x,我正在编写一个脚本来发送post请求,其中包含一些从JSON文件加载的数据 JSON: 代码: 目前,所有线程都在使用“数据[0]” 如何让一个线程使用“数据[0]”,下一个线程使用“数据[1]”,下一个线程使用“数据[2]” from multiprocessing import Pool def f(x): return x*x if __name__ == '__main__': p = Pool(5) print(p.map(f, [1, 2, 3])) 其

我正在编写一个脚本来发送post请求,其中包含一些从JSON文件加载的数据

JSON:

代码:

目前,所有线程都在使用“数据[0]”

如何让一个线程使用“数据[0]”,下一个线程使用“数据[1]”,下一个线程使用“数据[2]”

from multiprocessing import Pool

def f(x):
    return x*x

if __name__ == '__main__':
    p = Pool(5)
    print(p.map(f, [1, 2, 3]))
其中[1,2,3]是一个参数数组,用作f()方法的输入


来源:

如果您想要正确的多核处理,那么在Python中使用线程是没有意义的。改用多处理。谢谢你的回答,非常有帮助。当[1,2,3]是未定义的范围时,这可能是[1,2,…,899900],范围长度由len(数据)找到。如何使其适应当前JSON数据量?如果[1,2,3]数组使用范围(len(data))不起作用(因为范围不是一个列表…),则使用dolist(range(len(data)))
import requests
import json
import threading

with open('data.json', encoding='utf-8') as data_file:
    data = json.loads(data_file.read())

def send_info():
    url = 'http://ptsv2.com/t/e092q-1537974317/post'

    payload = {
    'titleCode': data[0]["title"],
    'firstName': data[0]["firstname"],
    'lastName': data[0]["lastname"],
    'cellPhone': data[0]["phonenumber"] 
    }

    r = requests.post(url, params=payload)

    print(r.text)

threads = []
for i in range(len(data)):
    t = threading.Thread(target=send_info)
    threads.append(t)
    t.start()
from multiprocessing import Pool

def f(x):
    return x*x

if __name__ == '__main__':
    p = Pool(5)
    print(p.map(f, [1, 2, 3]))