2013-05-10 3 views
0

"cusrosr.executemany() .단일 열에 삽입하는 첫 번째 문 (recs1 사용)이 잘 실행되고 두 개의 레코드가 삽입됩니다. 두 번째 삽입 (recs2)에 오류 :Python MySql executemany 오류

not enough arguments for format string

sql="""CREATE TABLE TestTable (
     Col1 VARCHAR(45) NULL , 
     Col2 VARCHAR(45) NULL);""" 
cursor.execute(sql) 

recs1= [("Spam"), ("Ham")] 
recs2= [("Spam", "Sausage"), ("Ham", "Plate")] 

try: 
    cursor.executemany("""insert into TestTable (Col1) values (%s);""", recs1) 
    db.commit() 
    print "cursor.rowcount: ",cursor.rowcount 
    cursor.executemany("""insert into TestTable (Col1, Col2) values (%s , %s);""", recs2) 
    db.commit() 

except Exception as e: 
    print 'Error: ', e 
    db.rollback() 
  • 소프트웨어 사용 :
  • 파이썬 MySQL을 - 파이썬 - 1.2.4b4.win32-py2.7에서 설치 2.7.4
  • MySQL을 ('1.2. .4b4 ')
  • MySql'5.5.27-log '(AWS RDS).

아이디어가 있으십니까?

답변

0

코드를 테스트하지는 않았지만 코드를 살펴보면 하나의 값만 가진 2 %의 문자열이 제공되므로 "형식 문자열의 인수가 충분하지 않습니다"라는 오류가 발생합니다.

당신은 아마 이런 식으로 뭔가를하고 싶지 :

recs2, recs3 = [("Spam", "Sausage")], [("Ham", "Plate")] 
cursor.executemany("""insert into TestTable (Col1, Col2) values (%s , %s);""", recs2, recs3) 

다시 말하지만, 난 아무것도 테스트하지 않았습니다, 그래서 당신의 자신의 위험에 실행합니다.

+0

"executemany"의 기본 아이디어입니다. 다음 예제를 참조하십시오 : http://dev.mysql.com/doc/connector-python/en/myconnpy_MySQLCursor_executemany.html –

+0

MySql 모듈을 원래 MySql mysql-connector-python-1.0.10- py2.7 –

관련 문제