当前位置: 首页 > news >正文

Python迭代器-大数据量的处理

一 生成器的实际使用(大量数据的导出)

#分批导出数据然后分批写入excel
import pandas as pd
import openpyxl
from openpyxl.utils.dataframe import dataframe_to_rowsdef execute_query(query):# 假设这是执行 SQL 查询的函数# 返回查询结果passdef fetch_products_in_batches(batch_size=1000):offset = 0while True:query = f"SELECT * FROM products LIMIT {batch_size} OFFSET {offset}"results = execute_query(query)if not results:breakyield resultsoffset += batch_sizedef export_to_excel(generator, filename):# 创建一个新的 Excel 工作簿wb = openpyxl.Workbook()ws = wb.active# 写入表头first_batch = next(generator)df = pd.DataFrame(first_batch)for r in dataframe_to_rows(df, index=False, header=True):ws.append(r)# 写入后续批次的数据for batch in generator:df = pd.DataFrame(batch)for r in dataframe_to_rows(df, index=False, header=False):ws.append(r)# 保存工作簿wb.save(filename)# 主逻辑
generator = fetch_products_in_batches()
export_to_excel(generator, 'products.xlsx')
http://www.lryc.cn/news/497605.html

相关文章:

  • 自动化包括态交互与感交互,而智能化包括势交互与知交互
  • VideoBooth: Diffusion-based Video Generation with Image Prompts
  • 模拟简单的iOT工作流
  • C++学习0.2: RAII
  • k8s,进一步理解Pod
  • MFC图形函数学习13——在图形界面输出文字
  • 【Canvas与雷达】点鼠标可暂停金边蓝屏雷达显示屏
  • React第十二节组件之间通讯之发布订阅模式(使用pubsub-js插件)
  • Vue3安装 运行教程
  • MySQL:约束constraint
  • 使用Rufus制作Ubuntu需要注意
  • 探索Go语言的高级特性:性能分析与安全性
  • SearchSploit配合gcc的使用
  • 无人机设计:云台挂载!
  • Spring Native适用场景、代理使用及测试部署策略
  • LeetCode—11. 盛最多水的容器(中等)
  • 第一部分:入门准备 1.欢迎来到新手村 --[JavaScript 新手村:开启编程之旅的第一步]
  • BERT的中文问答系统50
  • 深入解析CMake中的find_package命令:用法、特性及版本依赖问题
  • 【OpenDRIVE_Python】使用python脚本输出OpenDRIVE数据中含有隧道tunnel的道路ID和隧道信息
  • SIP系列五:HTTP(SIP)鉴权
  • mysql json整数数组去重 整数数组精确查找并删除相应数据
  • 【5G】技术组件 Technology Components
  • 数据结构4——栈和队列
  • PHP SM4 加密
  • leetcode - 2825. Make String a Subsequence Using Cyclic Increments
  • 工业—使用Flink处理Kafka中的数据_ChangeRecord1
  • 探索嵌入式硬件设计:揭秘智能设备的心脏
  • 数据结构-最小生成树
  • mac启动jmeter