2017-10-16 9 views
3

どのように動作するのか分かりません。私は機能がありますlog_in 2つの引数を持つユーザーパスワードです。そしてリストと私のすべてのユーザーとパスワードを持ってください。だから、私がp.map(log_in、リスト)を使用しているとき、それはリストが反復して "アンパック"することを意味します。どこ[ 'ユーザー'、 'bitnami']、[ 'USER1'、 '12345']などは、これらの引数log_inユーザーパスワード)となります。 はい?マルチプロセッシング、Pool.map()

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() missing 1 required positional argument: 'password'

+0

エラーメッセージが、これはそうではありません示唆して... –

答えて

1

問題がlog_in 2つの引数を取る関数ですが、あなたのコードは、その機能にただ一つの引数を渡すことである持っている:2つの要素を持つリスト。 Pool.starmap代わりのPool.mapを試してみてください。

p.starmap(log_in, list) 

Pool.starmap()のドキュメントから:

Like map() except that the elements of the iterable are expected to be iterables that are unpacked as arguments.

Hence an iterable of [(1,2), (3, 4)] results in [func(1,2), func(3,4)] .

関連する問題