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

时间:2018-09-26 16:08:06

标签: python python-3.x

我正在编写一个脚本,以发送带有从JSON文件中加载的一些数据的发布请求。

JSON:

[
  {
    "title": "Mr",
    "firstname": "Joe",
    "lastname": "Blogs",
    "phonenumber": 7901893333
  },
  {
    "title": "Miss",
    "firstname": "Jane",
    "lastname": "Wang",
    "phonenumber": 7901894444
  },
  {
    "title": "Mrs",
    "firstname": "Rosie",
    "lastname": "Thomas",
    "phonenumber": 7901895555
  }
]

代码:

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()

目前所有线程都在使用'data [0]'。

我如何让一个线程使用“ data [0]”,下一个线程使用“ data [1]”,下一个线程使用“ data [2]”?

1 个答案:

答案 0 :(得分:1)

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()方法输入的参数数组。

来源:https://docs.python.org/2/library/multiprocessing.html