python3 循环读取excel文件并写入json操作


Posted in Python onJuly 14, 2020

文件内容:

python3 循环读取excel文件并写入json操作

excel内容:

python3 循环读取excel文件并写入json操作

代码:

import xlrd
import json
import operator
 
def read_xlsx(filename):
 # 打开excel文件
 data1 = xlrd.open_workbook(filename)
 # 读取第一个工作表
 table = data1.sheets()[0]
 # 统计行数
 n_rows = table.nrows
 
 data = []
 
 # 微信文章属性:wechat_name wechat_id title abstract url time read like number
 for v in range(1, n_rows-1):
  # 每一行数据形成一个列表
  values = table.row_values(v)
  # 列表形成字典
  data.append({'wechat_name': values[0],
      'wechat_id': values[1],
      'title':  values[2],
      'abstract': values[3],
      'url':   values[4],
      'time':  values[5],
      'read':  values[6],
      'like':  values[7],
      'number':  values[8],
      })
 # 返回所有数据
 return data
 
if __name__ == '__main__':
 d = []
 # 循环打开每个excel
 for i in range(1, 16):
  d1 = read_xlsx('./excel data/'+str(i)+'.xlsx')
  d.extend(d1)
 
 # 微信文章属性
 # 按时间升序排列
 d = sorted(d, key=operator.itemgetter('time'))
 # 写入json文件
 with open('article.json', 'w', encoding='utf-8') as f:
  f.write(json.dumps(d, ensure_ascii=False, indent=2))
 
 name = []
 # 微信id写文件
 f1 = open('wechat_id.txt', 'w')
 for i in d:
  if i['wechat_id'] not in name:
   name.append(i['wechat_id'])
  f1.writelines(i['wechat_id'])
  f1.writelines('\n')
 
 print(len(name))

结果:

python3 循环读取excel文件并写入json操作

补充知识:Python mysql数据 读取时间参数 for循环写入Excel文件

最近在利用Python 实现自动化表报时,有个功能是mysql的业务时间是读取模板文件的时间参数,需要用到for循环功能,基本思路是:

1.自动创建一个输出文件的文件夹

2.根据模板文件创建一个新的excel文件到新创建的文件夹中

3.每次写入时返回sheet的最大行数max_row,下次写入时从最大行的下一行开始继续写入

4.每次读取必须为同一个文件

代码如下:

#! /usr/bin/env python
# -*- coding:utf-8 -*-
 
import MySQLdb
from openpyxl import load_workbook
import sys
import time
import os
 
reload(sys)
sys.setdefaultencoding('utf8')
 
# 打开数据库连接
db = MySQLdb.connect(host="localhost", user="zimu", passwd="zimu", db="xxx", port=0000,charset='utf8')
 
template_file_demo = r"D:\path\demo.xlsx"
# makedirs 创建文件时如果路径不存在会创建这个路径
output_path = r"D:\output\demo"+"_"+ time.strftime("%Y%m%d", time.localtime()) +"_" + str(int(time.time()))+"\\"
os.makedirs(output_path)
#创建文件到新创建的文件夹中
book_demo = load_workbook(template_file_demo)
book_demo.save(output_path + "demo" +"_"+time.strftime("%Y%m%d", time.localtime())+".xlsx")
#读取指定文件夹下的文件
demo_file = output_path+"demo"+"_"+time.strftime("%Y%m%d", time.localtime())+".xlsx"
 
def savedata(start_time,end_time):
	demosql = '''select * from demo where start_date<='%s' and end_date>='%s''''%(start_time,end_time)
  cursor = db.cursor()
  cursor.execute(demosql)
  demodata = cursor.fetchall()
 
  demo_book = load_workbook(demo_file)
  demosheet = demo_book['demo']
  row_t = demosheet.max_row
 
  i = 0
  while i < len(demodata):
    for j in range(0, 8):
      demosheet.cell(row_t + i + 1, j + 1).value = demodata[i][j]
    i += 1
    demo_book.save(output_path+"demo"+"_"+time.strftime("%Y%m%d", time.localtime())+".xlsx")
 
book_template = load_workbook(template_file_demo)
timet = book_template['时间配置']
for t in range(2, timet.max_row + 1): # 读取配置表中的时间
  savedata(timet.cell(t, 1).value, timet.cell(t, 2).value)

5.模板文件的时间参数设置如下:

python3 循环读取excel文件并写入json操作

以上这篇python3 循环读取excel文件并写入json操作就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python3基础之输入和输出实例分析
Aug 18 Python
python中threading超线程用法实例分析
May 16 Python
Python中的with...as用法介绍
May 28 Python
Python中staticmethod和classmethod的作用与区别
Oct 11 Python
python itchat实现调用微信接口的第三方模块方法
Jun 11 Python
python框架flask表单实现详解
Nov 04 Python
tensorflow 实现从checkpoint中获取graph信息
Feb 10 Python
python 实现字符串下标的输出功能
Feb 13 Python
Python作用域与名字空间原理详解
Mar 21 Python
python 追踪except信息方式
Apr 25 Python
利用Python如何实时检测自身内存占用
May 09 Python
Python机器学习应用之工业蒸汽数据分析篇详解
Jan 18 Python
Python爬虫实例——scrapy框架爬取拉勾网招聘信息
Jul 14 #Python
Python爬虫爬取新闻资讯案例详解
Jul 14 #Python
Win10下配置tensorflow-gpu的详细教程(无VS2015/2017)
Jul 14 #Python
Python实现图片查找轮廓、多边形拟合、最小外接矩形代码
Jul 14 #Python
python操作微信自动发消息的实现(微信聊天机器人)
Jul 14 #Python
python如何写try语句
Jul 14 #Python
Python操作MySQL数据库的示例代码
Jul 13 #Python
You might like
php遍历替换目录下文件指定内容的方法
2016/11/10 PHP
PHP实现二维数组去重功能示例
2017/01/12 PHP
laravel清除视图缓存的代码
2019/10/23 PHP
jquery DIV撑大让滚动条滚到最底部代码
2013/06/06 Javascript
JavaScript操作cookie类实例
2015/03/31 Javascript
JS实现仿QQ聊天窗口抖动特效
2015/05/10 Javascript
js编写当天简单日历效果【实现代码】
2016/05/03 Javascript
JS+Canvas实现的俄罗斯方块游戏完整实例
2016/12/12 Javascript
详解nodejs 文本操作模块-fs模块(四)
2016/12/22 NodeJs
easyui简介_动力节点Java学院整理
2017/07/14 Javascript
详解基于Vue-cli搭建的项目如何和后台交互
2018/06/29 Javascript
如何在JavaScript中优雅的提取循环内数据详解
2019/03/04 Javascript
详解vue-cli+element-ui树形表格(多级表格折腾小计)
2019/04/17 Javascript
vue-cli创建的项目中的gitHooks原理解析
2020/02/14 Javascript
微信小程序收藏功能的实现代码
2020/06/19 Javascript
JS轮播图的实现方法
2020/08/24 Javascript
[06:11]2014DOTA2国际邀请赛 专访团结一心的VG战队
2014/07/21 DOTA
python正则匹配查询港澳通行证办理进度示例分享
2013/12/27 Python
Python中线程编程之threading模块的使用详解
2015/06/23 Python
Python实现文件按照日期命名的方法
2015/07/09 Python
python中根据字符串调用函数的实现方法
2016/06/12 Python
Python各类图像库的图片读写方式总结(推荐)
2018/02/23 Python
Random 在 Python 中的使用方法
2018/08/09 Python
基于python中__add__函数的用法
2019/11/25 Python
python之生成多层json结构的实现
2020/02/27 Python
Python os库常用操作代码汇总
2020/11/03 Python
英国领先的游戏零售商:GAME
2019/09/24 全球购物
俄罗斯购买剧院和演唱会门票网站:Parter.ru
2019/11/09 全球购物
作为网站管理者应当如何防范XSS
2014/08/16 面试题
运动会四百米广播稿
2014/01/19 职场文书
大学生简短的自我评价分享
2014/02/20 职场文书
产品设计开发计划书
2014/05/07 职场文书
2015年上半年计生工作总结
2015/03/30 职场文书
刘胡兰观后感
2015/06/16 职场文书
强烈推荐:小学生:暑假作息时间表(值得收藏)
2019/07/09 职场文书
类和原型的设计模式之复制与委托差异
2022/07/07 Javascript