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删除nginx缓存文件示例(python文件操作)
Mar 26 Python
Python中使用strip()方法删除字符串中空格的教程
May 20 Python
详解Python中where()函数的用法
Mar 27 Python
Django 多语言教程的实现(i18n)
Jul 07 Python
Python并行分布式框架Celery详解
Oct 15 Python
python判断一个数是否能被另一个整数整除的实例
Dec 12 Python
python批量获取html内body内容的实例
Jan 02 Python
Python生成个性签名图片获取GUI过程解析
Dec 16 Python
基于python3的socket聊天编程
Feb 17 Python
Python数据正态性检验实现过程
Apr 18 Python
python如何解析复杂sql,实现数据库和表的提取的实例剖析
May 15 Python
python简单实现9宫格图片实例
Sep 03 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简单浏览目录内容的实现代码
2013/06/07 PHP
PHP文件大小格式化函数合集
2014/03/10 PHP
PHP实现自动登入google play下载app report的方法
2014/09/23 PHP
php文件系统处理方法小结
2016/05/23 PHP
浅析PHP类的反射来实现依赖注入过程
2018/02/06 PHP
用javascript实现兼容IE7的类库 IE7_0_9.zip提供下载
2007/08/08 Javascript
js href的用法
2010/05/13 Javascript
js实现表单多按钮提交action的处理方法
2015/10/24 Javascript
jquery及js实现动态加载js文件的方法
2016/01/21 Javascript
xtemplate node.js 的使用方法实例解析
2016/08/22 Javascript
BootStrap Table 后台数据绑定、特殊列处理、排序功能
2017/05/27 Javascript
深入浅析vue组件间事件传递
2017/12/29 Javascript
详解swipe使用及竖屏页面滚动方法
2018/06/28 Javascript
vue2.0 下拉框默认标题设置方法
2018/08/22 Javascript
vue中rem的配置的方法示例
2018/08/30 Javascript
代码实例ajax实现点击加载更多数据图片
2018/10/12 Javascript
小程序实现列表删除功能
2018/10/30 Javascript
小程序封装wx.request请求并创建接口管理文件的实现
2019/04/29 Javascript
通过说明与示例了解js五种设计模式
2019/06/17 Javascript
vue实现Excel文件的上传与下载功能的两种方式
2019/06/28 Javascript
jqGrid表格底部汇总、合计行footerrow处理
2019/08/21 Javascript
python中wx将图标显示在右下角的脚本代码
2013/03/08 Python
Python的Socket编程过程中实现UDP端口复用的实例分享
2016/03/19 Python
python+VTK环境搭建及第一个简单程序代码
2017/12/13 Python
python使用tornado实现登录和登出
2018/07/28 Python
python 实现矩阵上下/左右翻转,转置的示例
2019/01/23 Python
CSS3使用transition实现的鼠标悬停淡入淡出
2015/01/09 HTML / CSS
Monnier Freres中文官网:法国领先的奢侈品配饰在线零售商
2017/11/01 全球购物
如何理解委托
2012/01/06 面试题
Delphi CS笔试题
2014/01/04 面试题
自愿离婚协议书范文2014
2014/10/12 职场文书
2014年租房协议书范本
2014/10/30 职场文书
村党建工作汇报材料
2014/11/02 职场文书
2014年高中教师工作总结
2014/12/19 职场文书
2015年小学校长工作总结
2015/05/19 职场文书
学习杨善洲同志先进事迹心得体会
2016/01/23 职场文书