如果您需要处理多行数据,使用游标或其他适当的方法是更好的选择。以下是一些处理多行数据的方法:
- 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()
executemany()
方法执行多行插入:- 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()
- 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()