Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/309.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python-将元组列表插入SQLite_Python_Sqlite - Fatal编程技术网

Python-将元组列表插入SQLite

Python-将元组列表插入SQLite,python,sqlite,Python,Sqlite,我试图获取一个用python创建的元组列表,并将它们导入到SQLite的表中。以下代码起作用: conn = sqlite3.connect('emaildb4.sqlite') cur = conn.cursor() cur.execute('''CREATE TABLE Counts (email TEXT, count INTEGER)''') 但是,一旦我尝试插入字典,它看起来像这样,并且被称为Counts: [('txstate.edu', 17), ('media.berkele

我试图获取一个用python创建的元组列表,并将它们导入到SQLite的表中。以下代码起作用:

conn = sqlite3.connect('emaildb4.sqlite')
cur = conn.cursor() 
cur.execute('''CREATE TABLE Counts (email TEXT, count INTEGER)''')
但是,一旦我尝试插入字典,它看起来像这样,并且被称为
Counts

[('txstate.edu', 17), ('media.berkeley.edu', 56), ('vt.edu', 110), ('whitman.edu', 17), ('lancaster.ac.uk', 14), ('rsmart.com', 8), ('fhda.edu', 1), ('uct.ac.za', 96), ('unicon.net', 9), ('utoronto.ca', 1), ('loi.nl', 9), ('indiana.edu', 178), ('et.gatech.edu', 17), ('umich.edu', 491), ('gmail.com', 25), ('ucdavis.edu', 1), ('stanford.edu', 12), ('bu.edu', 14), ('caret.cam.ac.uk', 157), ('ufp.pt', 28), ('iupui.edu', 536)]
使用下面的代码,我只得到了一个
输出[318]:
,并且SQLite表中没有任何更改

代码:

我还尝试将元组更改为字典/按名称引用值,并在运行cur.execute的列表中循环多次。

您需要提交更改:

cur.executemany('insert into Counts (email, count) values (?,?)',Counts)
conn.commit()
您可以通过以下方式让连接自动处理此问题:

cur.executemany('insert into Counts (email, count) values (?,?)',Counts)
conn.commit()
with conn:
    cur.executemany('insert into Counts (email, count) values (?,?)',Counts)