Python和SQLite游标处理多行数据

如果您需要处理多行数据,使用游标或其他适当的方法是更好的选择。以下是一些处理多行数据的方法:

  • 使用游标:游标可以逐行处理查询结果,这对于大量数据或需要逐行处理的场景非常有用。以下是一个使用Python和SQLite的游标示例:
python 复制代码
import sqlite3

conn = sqlite3.connect('example.db')
cursor = conn.cursor()

# 执行查询
cursor.execute("SELECT * FROM your_table")

# 使用fetchone()逐行获取数据
row = cursor.fetchone()
while row is not None:
    # 在这里处理每一行数据
    print(row)
    row = cursor.fetchone()

# 关闭游标和连接
cursor.close()
conn.close()
  • 使用批量操作:如果您的数据库支持批量操作,可以一次性处理多行数据。例如,在SQLite中,您可以使用executemany()方法执行多行插入:
python 复制代码
import sqlite3

conn = sqlite3.connect('example.db')
cursor = conn.cursor()

# 准备数据
data = [
    ('row1_value1', 'row1_value2'),
    ('row2_value1', 'row2_value2'),
    ('row3_value1', 'row3_value2')
]

# 使用executemany()执行批量插入
cursor.executemany("INSERT INTO your_table (column1, column2) VALUES (?, ?)", data)

# 提交更改并关闭游标和连接
conn.commit()
cursor.close()
conn.close()
  • 使用分批处理:如果您的数据量非常大,可以将数据分批处理,以减少内存占用和提高性能。以下是一个分批处理的示例:
python 复制代码
import sqlite3

conn = sqlite3.connect('example.db')
cursor = conn.cursor()

# 设置批处理大小
batch_size = 100

# 执行查询
cursor.execute("SELECT * FROM your_table")

# 使用fetchmany()分批获取数据
rows = cursor.fetchmany(batch_size)
while len(rows) > 0:
    for row in rows:
        # 在这里处理每一行数据
        print(row)

    # 获取下一批数据
    rows = cursor.fetchmany(batch_size)

# 关闭游标和连接
cursor.close()
conn.close()
相关推荐
学测绘的小杨6 小时前
CompassFusion:一个从 GNSS 到 GNSS/INS 组合导航的独立工程包
python
zzzzzz31013 小时前
当产品经理说这个很简单:我用Python自动化处理奇葩需求的实战指南
python·pycharm·产品经理
雪隐13 小时前
个人电脑玩AI-06让5060 Ti给你打工——不光能画画,Qwen3-TTS还能学人说话,连我老板都信了!
人工智能·后端·python
兵慌码乱1 天前
面向桌面端的资产管理系统分层架构设计与核心模块实现
python·系统架构·sqlite·pyqt5·数据库设计·桌面应用开发·mvc架构
hboot1 天前
AI工程师第三课 - 机器学习基础
python·scikit-learn·kaggle
顾林海1 天前
Agent入门阶段-编程基础-Python:流程控制
python·agent·ai编程
呱呱复呱呱1 天前
Django CBV 源码解读:一个请求是怎么找到你的 get() 方法的
python·django
曲幽2 天前
刚部署的 LibreTranslate 频频翻车?我掏出了 20 年前的 StarDict 词典,用 FastAPI 搭了个本地词典翻译 API
python·fastapi·web·translate·goldendict·libretranslate·stardict·pystardict
荣码2 天前
用Streamlit给AI应用套个界面,10行代码出Web页面
java·python
兵慌码乱2 天前
基于Python+PyQt5+SQLite的药房管理系统实现:事务一致性与界面解耦全流程解析
python·sqlite·信号与槽·pyqt5·数据库设计·桌面应用开发·事务处理