我在python中有一个表,我想转换为.db格式。 但是,当我在IDLE中运行我的代码时,会使用标题创建表,但不会插入数据。这是我的代码:
import sqlite3
conn = sqlite3.connect('test.db')
c = conn.cursor()
kampData = [
(1,12,'','','Everton','Liverpool',2.9,3.3,2.63,0,0),
(2,12,'','','Fulham','Swansea City',3.4,3.4,2.3,0,0),
(3,12,'','','Hull City','Crystal Palace',1.91,3.5,4.75,0,0)
]
def tableCreate():
c.execute("CREATE TABLE TABLE(ID INT, Round INT, Date TEXT, Time TEXT, Home TEXT, Away TEXT, O1 REAL, OX REAL, O2 REAL, ScoreHome INT, ScoreAway INT)")
def insertData():
i = 0
while i < len(kampData):
c.execute("INSERT INTO TEST1 (ID, Round, Date, Time, Home, Away, O1, OX, O2, ScoreHome, ScoreAway) VALUES (?,?,?,?,?,?,?,?,?,?,?)",
(kampData[i][0],kampData[i][1],kampData[i][2],kampData[i][3],kampData[i][4],kampData[i][5],kampData[i][6],kampData[i][7],kampData[i][8],kampData[i][9],kampData[i][10],))
i = i + 1
答案 0 :(得分:1)
您的代码未调用insertData()
,并且该函数过于冗长。最后但并非最不重要的是,您似乎没有提交交易。
使用c.executemany()
一次性插入整个结构;无需索引每列:
def insertData():
c.executemany("INSERT INTO TEST1 (ID, Round, Date, Time, Home, Away, O1, OX, O2, ScoreHome, ScoreAway) VALUES (?,?,?,?,?,?,?,?,?,?,?)",
kampData)
您还需要提交您的交易:
conn.commit()