2017-05-16 4 views
1

DB2 테이블에 삽입하고자하는 사전 목록이 있습니다. 어떻게해야합니까? DB2 드라이버 ibm_db을 사용하고 있습니다.DB2 python 사전 목록 삽입

list_of_dictionaries = [] 
sql = "INSERT INTO schema.table VALUES (...)" 
ibm_db.exec_immediate(conn, sql) 

문제는 테이블뿐만 아니라 사전에 백 열/키보다 더 가지고있다, 그래서 난 내 SQL 쿼리의 모든 열 이름을 나열하고 싶지 않은 : 여기에 내 코드입니다. 여기

답변

1

ibm_db 드라이버를 사용하여 DB2 테이블에 사전의 목록을 삽입하는 방법은 다음과 같습니다

for i in list_of_dictionaries: 

    columns = ', '.join(i.keys()) 
    placeholders = ', '.join(['?'] * len(i)) 

    insert_sql = "INSERT INTO schema.table (" + columns + ") VALUES (" + placeholders + ")" 
    stmt_insert = ibm_db.prepare(conn, insert_sql) 

    try: 
     ibm_db.execute(stmt_insert, tuple(i.values())) 
    except: 
     print "Transaction couldn't be completed:" , ibm_db.stmt_errormsg() 
    else: 
     print "sucessfully inserted " 

PS : 당신이 대량 삽입을하고있는 것처럼, 당신은 그러나 그것을 함수 ibm_db.execute_many()를 사용할 수 있습니다 오류 처리 등의 유연성이 떨어집니다.