[英]Insert list data into DB2 in python
我在 python 中將元組列表插入 DB2 中的數據庫時遇到了這個問題
我之前的任務是創建一個包含所有數據的變量
但我無法將該數據插入數據倉庫
這是我在上一個任務中的代碼
def get_latest_records(rowid):
MySQL_query = "SELECT * FROM sales_data WHERE rowid > %s"
cursor.execute(MySQL_query, (rowid,))
result = cursor.fetchall()
return result
new_records = get_latest_records(last_row_id)
print("New rows on staging datawarehouse = ", len(new_records))
print(type(new_records))
print(new_records[0:2])
Sow 我有一個包含數據列表的變量我嘗試將該數據插入 DB2 Warehouse
我希望每個元組都作為行插入數據庫 (12290, 6715, 80213, 1)
記錄 12290 插入數據庫中 rowid 的編號
和 6715 插入到 product_id
80213 插入到 customer_id
1 插入數量
這是數據庫模式
我試試這段代碼
def insert_records(records):
Db2_Insert = "INSERT INTO SALES_DATA VALUES(?,?,?,?);"
prepare = ibm_db.prepare(conn, Db2_Insert)
ibm_db.execute(prepare, (records,))
insert_records(new_records)
print("New rows inserted into production datawarehouse = ", len(new_records))
不工作異常錯誤
謝謝你的幫助 。
避免構建嵌套的可迭代對象。 因為records
是一個列表,所以不需要將它包裝在一個元組中。 您嘗試綁定的參數(records,)
是列表對象的單項元組(該列表可能包含 4 個值)。
因此,只需在params
參數中直接傳遞列表即可。 在ibm_db.execute
中要避免的是標量,而不是迭代:
def insert_records(records):
Db2_Insert = "INSERT INTO SALES_DATA VALUES(?, ?, ?, ?);"
prepare = ibm_db.prepare(conn, Db2_Insert)
ibm_db.execute(prepare, records)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.