从python将数据插入sql数据库

从python将数据插入sql数据库,python,sql,sqlite,Python,Sql,Sqlite,我有一个python表,我想转换成.db格式。 但是,当我在空闲状态下运行代码时,会创建带有标题的表,但不会插入数据。这是我的代码: 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.

我有一个python表,我想转换成.db格式。 但是,当我在空闲状态下运行代码时,会创建带有标题的表,但不会插入数据。这是我的代码:

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
导入sqlite3 conn=sqlite3.connect('test.db') c=连接光标() kampData=[ (1,12,","埃弗顿","利物浦",2.9,3.3,2.63,0,0),, (2,12,'','','富勒姆','斯旺西城',3.4,3.4,2.3,0,0), (3,12,","赫尔城","水晶宫",1.91,3.5,4.75,0,0) ] def tableCreate(): c、 执行(“创建表(ID INT、Round INT、日期文本、时间文本、主文本、离开文本、O1 REAL、OX REAL、O2 REAL、ScoreHome INT、ScoreAway INT)”) def insertData(): i=0 而我您的代码没有调用
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()
您也没有在这里调用这两个函数。这都是你的代码吗?我打赌
commit()
是这里的关键。