总数据有530万条,我怎样使用cursor.fetchmany 获取所有数据,并导出为xlsx文件
时间: 2024-01-21 07:19:23 浏览: 221
如果你想使用 `cursor.fetchmany()` 获取所有数据,可以使用以下代码:
```python
import pymysql
import openpyxl
# 连接数据库
conn = pymysql.connect(host='localhost', port=3306, user='root', password='yourpassword', database='yourdatabase')
cursor = conn.cursor()
# 查询数据
cursor.execute('SELECT * FROM yourtable')
# 获取数据
all_data = []
while True:
data = cursor.fetchmany(1000) # 每次获取1000条数据
if not data:
break
all_data.extend(data)
# 关闭数据库连接
cursor.close()
conn.close()
# 导出为xlsx文件
wb = openpyxl.Workbook()
ws = wb.active
ws.title = 'Data'
for row in all_data:
ws.append(row)
wb.save('data.xlsx')
```
这个代码会一次性获取所有数据,并把数据保存在一个列表中,然后再导出为xlsx文件。每次获取1000条数据,可以根据自己的需要调整这个数字。另外,这个代码适用于数据量不大的情况,如果数据量很大,可能会导致内存不够用,建议分批次处理数据。
阅读全文