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

如何打印sqlite3数据库内容?代码输出Cursor对象该如何解决

问题原因

你当前的代码在循环中错误打印了游标对象c而非遍历得到的每行数据row,所以输出的都是游标对象的内存地址。

正确修改方案

直接把循环内的打印对象从c改为row即可,修改后的完整代码如下:

import sqlite3
# 连接数据库
conn = sqlite3.connect('database.db')
c = conn.cursor()
c.execute("SELECT * FROM records")  

# 遍历游标返回的每行数据,直接打印row
for row in c:
    print(row)

# 操作完成后记得关闭连接
conn.close()

可选优化方案

如果需要更灵活地处理查询结果,也可以选择以下两种写法:

  • 调用fetchall()一次性取出所有结果再遍历,适合数据量不大的场景:
c.execute("SELECT * FROM records")
rows = c.fetchall()
for row in rows:
    print(row)
  • 调用fetchone()逐行读取,适合数据量较大、不想一次性加载全部数据到内存的场景:
c.execute("SELECT * FROM records")
while True:
    row = c.fetchone()
    if row is None:
        break
    print(row)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 11:36:01