DB2 python插入字典列表

问题描述 投票:1回答:1

我有一个字典列表,我想插入到DB2表中。我怎样才能做到这一点?我正在使用ibm_db DB2驱动程序。这是我的代码:

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

问题是表和字典有超过一百列/键,所以我不想在我的SQL查询中列出所有列名。

python sql db2 prepared-statement
1个回答
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 "

P.S:当你正在进行批量插入时,可以使用函数ibm_db.execute_many(),但是它会降低错误处理的灵活性等。

© www.soinside.com 2019 - 2024. All rights reserved.