Skip to main content
 首页 » 编程设计

Python之将元组列表插入 SQLite

2025年05月04日31cmt

我正在尝试获取在 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)] 

使用下面的代码,我只得到一个 Out[318]: <sqlite3.Cursor at 0x1b3e6500> , SQLite 表没有变化。

代码:

cur.executemany('insert into Counts (email, count) values (?,?)',Counts) 

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

请您参考如下方法:

您需要提交更改:

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

您可以通过 using it as a context manager 让连接自动处理这个问题:

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