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 相关文章推荐
python使用marshal模块序列化实例
Sep 25 Python
python单元测试unittest实例详解
May 11 Python
Python二分法搜索算法实例分析
May 11 Python
python数组过滤实现方法
Jul 27 Python
python 常见字符串与函数的用法详解
Nov 23 Python
python中报错&quot;json.decoder.JSONDecodeError: Expecting value:&quot;的解决
Apr 29 Python
Python使用numpy模块实现矩阵和列表的连接操作方法
Jun 26 Python
django中间键重定向实例方法
Nov 10 Python
Python Scrapy框架第一个入门程序示例
Feb 05 Python
python使用pyecharts库画地图数据可视化的实现
Mar 25 Python
python软件都是免费的吗
Jun 18 Python
Python爬虫爬取微博热搜保存为 Markdown 文件的源码
Feb 22 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/07/05 PHP
jquery 简单图片导航插件jquery.imgNav.js
2010/03/17 Javascript
EditPlus注册码生成器(js代码实现)
2013/03/25 Javascript
javascript与jquery中跳出循环的区别总结
2013/11/04 Javascript
浮动的div自适应居中显示的js代码
2013/12/23 Javascript
浅谈JavaScript字符串与数组
2015/06/03 Javascript
数据分析软件之FineReport教程:[5]参数界面JS(全)
2015/08/13 Javascript
bootstrap学习笔记之初识bootstrap
2016/06/21 Javascript
jQuery实现下拉框多选 jquery-multiselect 的实例代码
2016/07/14 Javascript
原生Javascript插件开发实践
2017/01/18 Javascript
Angular实现一个简单的多选复选框的弹出框指令实例
2017/04/25 Javascript
浅谈Vue.js 1.x 和 2.x 实例的生命周期
2017/07/25 Javascript
vue.js通过路由实现经典的三栏布局实例代码
2018/07/08 Javascript
vue click.stop阻止点击事件继续传播的方法
2018/09/04 Javascript
jquery 时间戳转日期过程详解
2019/10/12 jQuery
JS精确判断数据类型代码实例
2019/12/18 Javascript
JavaScript实现密码强度实时验证
2020/03/18 Javascript
Python数据结构之单链表详解
2017/09/12 Python
Python跨文件全局变量的实现方法示例
2017/12/10 Python
Python实现的计算器功能示例
2018/04/26 Python
Python 如何提高元组的可读性
2019/08/26 Python
python 有效的括号的实现代码示例
2019/11/11 Python
python实现猜数游戏(保存游戏记录)
2020/06/22 Python
Python 里最强的地图绘制神器
2021/03/01 Python
HTML5之语义标签介绍
2016/07/07 HTML / CSS
博柏利美国官方网站:Burberry美国
2020/11/19 全球购物
西安交大自主招生自荐信
2014/01/27 职场文书
小学数学课题方案
2014/06/15 职场文书
纪检干部先进事迹材料
2014/08/23 职场文书
2015羊年春节慰问信
2015/02/14 职场文书
项目投资意向书范本
2015/05/09 职场文书
对领导班子的意见和建议
2015/06/08 职场文书
高三教师工作总结2015
2015/07/21 职场文书
2019大学生实习报告
2019/06/21 职场文书
漫画「古见同学有交流障碍症」第25卷封面公开
2022/03/21 日漫
错误码NET::ERR_CERT_DATE_INVALID证书已过期解决方法?
2022/07/07 数码科技