2017-05-16 23 views
1

私はDB2テーブルに挿入したい辞書のリストを持っています。どうやってやるの?私はibm_db DB2ドライバを使用しています。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()を使用することができ、しかし、それはエラー処理などの柔軟性が低下します。