【发布时间】:2014-12-02 05:00:20
【问题描述】:
我目前正在为我的 A 级计算课程作业编写程序。我正在尝试使用 Python 3.4 中的 sqlight3 将数据从 csv 文件导入数据库。我已经尝试了几个例子,但我似乎无法让它们中的任何一个工作。我对python知之甚少,因此将不胜感激。
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()
每次我运行代码时都会返回以下错误消息:
Traceback(最近一次调用最后一次): 文件“G:\Computing\A2\Coursework\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,posted_date,posted_date_time,order_item_code,merchant_order_item_id,merchant_adjustment_item sqlite3.OperationalError:靠近“%”:语法错误
我了解语法不正确,我正在寻找一种将数据插入适当列的方法。
【问题讨论】:
-
如果这是 A-Level 课程,您可能需要说明您从这里获得了帮助。
标签: csv python-3.x sqlite