2017-11-08 16 views
0

TypeError:create()は1つの位置引数をとりますが、2が与えられました。Python、1の位置引数ですが、2が与えられました

私は、CSV、私はエラーの下に取得していますCSVからの入力を与えることをしようとすると、単一のオブジェクトの作成 のため正常に動作し、同じコードをインポートせずに以下のコード

ため、エラーの上に取得しています

from f5.bigip import ManagementRoot 
import urllib3 
import csv 
urllib3.disable_warnings() 
mgmt = ManagementRoot('13.126.108.12','admin','admin') 
ltm = mgmt.tm.ltm 
virtuals = mgmt.tm.ltm.virtuals 
virtual = mgmt.tm.ltm.virtuals.virtual 

with open('name.csv', newline='') as csvfile: 
     reader = csv.DictReader(csvfile) 
     for row in reader: 
      virtual1 = mgmt.tm.ltm.virtuals.virtual.create(row['name'], row['description'], row['ip']) 

私は、csvファイル(name.csv)に3つの列とn個の番号の行を持っています。

答えて

0

あなたが提供したエラーメッセージは間違っています。なぜなら、4つの引数が与えられているからです(csvからの3つの自己値)。

とにかく問題は、createはキー引数だけを必要とすることです。私は、最後の行は次のようになりますと信じて:

virtual1 = mgmt.tm.ltm.virtuals.virtual.create(
    nam=row['name'], 
    description=row['description'], 
    ip=row['ip']) 

あるいは

virtual1 = mgmt.tm.ltm.virtuals.virtual.create(**row) 

それはキーの引数は、仮想期待しているに依存します。

+1

CSVファイルの内容と '.create(...)'がその引数をどのように受け取るかによって、OPは '.create(** row)'を使うことさえできるかもしれません... –

+0

@JonClementsはい、ありがとう!私は答えを更新しました。 – Trilliput

+0

ありがとう、私はオブジェクトがCSVの入力でF5ボックスに正常に作成されているのを見ています。もう1つのコマンドが必要です。これは、各行のCSVファイルの1つの列(IP後)に成功または失敗のステータスを表示します。 –

関連する問題