我不明白它是如何运作的。我的功能 log_in 有两个参数用户和密码。并使用我的所有用户和密码列出。因此,当我使用 p.map(log_in,list)时,这意味着列表将迭代并“解包”。其中['user','bitnami'],['user1','12345']等参数将为 log_in ( 用户 ,的 密码 )。 是
def log_in(user, password):
payload = wrap_creds_in_xml(username=user, password=password)
response = requests.post(TARGET_URL, payload)
if __name__ == '__main__':
TARGET_URL = 'http://192.168.1.6/wp-login.php'
list = [['user', 'bitnami'], ['user1', '12345'],
['user2', '54321'], ['user3', 'qwerty']]
p = Pool(5)
p.map(log_in, list)
我有错误
TypeError:main()缺少1个必需的位置参数:'password'
答案 0 :(得分:6)
问题是log_in
是一个带有两个参数的函数,但是你的代码只向该函数传递一个参数:一个包含两个元素的列表。请尝试使用Pool.starmap
代替Pool.map
:
p.starmap(log_in, list)
来自Pool.starmap()
的文档:
与
map()
类似,只是期望迭代的元素 被解压缩为参数的迭代。因此,
[(1,2), (3, 4)]
的可迭代结果为[func(1,2), func(3,4)]
。