2017-11-08 1 views
0

TypeError : create()는 1 개의 위치 인수를 취하지 만 2가 주어진다.파이썬, 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)에 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 상자에 성공적으로 생성되는 것을보고 있습니다. 하나 이상의 명령이 필요합니다.이 명령은 각 행의 CSV 파일에서 하나의 열 (IP 이후)에 성공 또는 실패 상태를 제공합니다. –

관련 문제