You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

向SQLite数据库插入列表后调用fetchall返回空列表问题求助

问题原因
  • executemany执行的是插入类写操作,执行完成后游标不会绑定任何查询结果集,此时直接调用fetchall()只会返回空列表。
  • fetchall()仅能读取最近一次执行的查询类SQL(SELECT语句)返回的结果,建表、插入、更新这类非查询操作都不会生成可供读取的结果集。
修复方法

在conn.commit()之后新增查询全表的SQL语句即可,修改后可正常运行的代码如下:

import sqlite3

conn = sqlite3.connect(":memory:")

c = conn.cursor()

c.execute("CREATE TABLE books (title TEXT, pages INTEGER)")  

books = [
    ("Are You My Mother?", 72),
    ("The Digging-est Dog", 72),
    ("The Giving Tree", 66)
]

c.executemany("INSERT INTO books VALUES(?,?)", books)
conn.commit()
# 新增查询语句
c.execute("SELECT * FROM books")
data = c.fetchall()
print(data)

运行修改后的代码即可输出插入的三条书籍数据。

内容的提问来源于stack exchange,提问作者user16790886

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 03:24:03