我有一个我想要插入DB2表的字典列表。我怎样才能做到这一点?我正在使用ibm_db
DB2驱动程序。这是我的代码:
list_of_dictionaries = []
sql = "INSERT INTO schema.table VALUES (...)"
ibm_db.exec_immediate(conn, sql)
问题是表和字典有超过一百列/键,所以我不想在我的SQL查询中列出所有列名。
答案 0 :(得分:2)
以下是如何使用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()
,但是它会降低错误处理的灵活性等。