我目前正在爲我的A級計算課程工作編寫一個程序。我正嘗試使用Python 3.4中的sqlight3將數據從csv文件導入到數據庫中。我已經嘗試了幾個例子,但我似乎無法讓他們中的任何人工作。我幾乎沒有Python的知識,所以幫助將不勝感激。如何使用sqlite3從csv文件將數據導入到python 3.4中的數據庫
import sqlite3
new_db = sqlite3.connect(':memory:')
c=new_db.cursor()
import csv
c.execute('''CREATE TABLE data
(settlement_id,
settlement_start_date,
settlement_end_date,
deposit_date,
total_amount,
currency,
transaction_type,
order_id,
merchant_order_id,
adjustment_id,
shipment_id,
marketplace_name,
amount_type,
amount_description,
amount,
fulfillment_id,
posted_date,
posted_date_time,
order_item_code,
merchant_order_item_id,
merchant_adjustment_item_id,
sku,
quantity_purchased,
promotion_id)
''')
with open('testdata1.csv', newline='') as f:
reader = csv.reader(f)
for column in reader:
settlement_id = column[0]
settlement_start_date = column[1]
settlement_end_date = column[2]
deposit_date = column[3]
total_amount = column[4]
currency = column[5]
transaction_type = column[6]
order_id = column[7]
merchant_order_id = column[8]
adjustment_id = column[9]
shipment_id = column[10]
marketplace_name = column[11]
amount_type = column[12]
amount_description = column[13]
amount = column[14]
fulfillment_id = column[15]
posted_date = column[16]
posted_date_time = column[17]
order_item_code = column[18]
merchant_order_item_id = column[19]
merchant_adjustment_item_id = column[20]
sku = column[21]
quantity_purchased = column[22]
promotion_id = column[23]
c.execute('''INSERT into data (settlement_id,settlement_start_date,settlement_end_date,deposit_date,total_amount,currency,transaction_type,order_id,merchant_order_id,adjustment_id,shipment_id,marketplace_name,amount_type,amount_description,amount,fulfillment_id,posted_date,posted_date_time,order_item_code,merchant_order_item_id,merchant_adjustment_item_id,sku,quantity_purchased,promotion_id)
values (%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s)''',
(settlement_id,settlement_start_date,settlement_end_date,deposit_date,total_amount,currency,transaction_type,order_id,merchant_order_id,adjustment_id,shipment_id,marketplace_name,amount_type,amount_description,amount,fulfillment_id,posted_date,posted_date_time,order_item_code,merchant_order_item_id,merchant_adjustment_item_id,sku,quantity_purchased,promotion_id))
db.commit()
new_db.close()
我每次運行,返回以下錯誤消息代碼:
回溯(最近通話最後一個): 文件 「G:\計算\ A2 \習作\ SQL2.py」,行66,在 (settlement_id,settlement_start_date,settlement_end_date,deposit_date,total_amount,currency,transaction_type,order_id,merchant_order_id,adjustment_id,shipment_id,marketplace_name,amount_type,amount_description,amount,fulfillment_id,posting_date,posting_date_time,order_item_code,merchant_order_item_id,merchant_adjustment_item_id,sku,quantity_purchased ,promotion_id)) sqlite3.OperationalError:接近「%」:語法錯誤
我明白,語法是不正確的,我正在尋找一種方法,將數據插入到適當的列。
如果這是A-Level的課程,你可能需要聲明,你從這裏獲得了幫助。 – matsjoyce 2014-10-07 17:21:34