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计算书页码的统计数字问题实例
Sep 26 Python
Python实现爬取知乎神回复简单爬虫代码分享
Jan 04 Python
python使用post提交数据到远程url的方法
Apr 29 Python
基于python select.select模块通信的实例讲解
Sep 21 Python
python中kmeans聚类实现代码
Feb 23 Python
利用python实现汉字转拼音的2种方法
Aug 12 Python
python fuzzywuzzy模块模糊字符串匹配详细用法
Aug 29 Python
简单了解python中的与或非运算
Sep 18 Python
python中sklearn的pipeline模块实例详解
May 21 Python
如何用Python搭建gRPC服务
Jun 30 Python
利用Python将list列表写入文件并读取的方法汇总
Mar 25 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操作MongoDB类实例
2015/06/17 PHP
PHP完全二叉树定义与实现方法示例
2017/10/09 PHP
PHP操作Postgresql封装类与应用完整实例
2018/04/24 PHP
使用PHPExcel导出Excel表
2018/09/08 PHP
javascript 定义初始化数组函数
2009/09/07 Javascript
JavaScript中switch判断容易犯错的一个细节
2014/08/27 Javascript
javascript正则表达式使用replace()替换手机号的方法
2015/01/19 Javascript
JavaScript DOM操作表格及样式
2015/04/13 Javascript
JavaScript实现基于十进制的四舍五入实例
2015/07/17 Javascript
jquery实现鼠标滑过后动态图片提示效果实例
2015/08/10 Javascript
全面解析Bootstrap表单使用方法(表单按钮)
2015/11/24 Javascript
JavaScript常用函数工具集:lao-utils
2016/03/01 Javascript
基于jQuery的AJAX和JSON实现纯html数据模板
2016/08/09 Javascript
js实现可旋转的立方体模型
2016/10/16 Javascript
vue打包使用Nginx代理解决跨域问题
2018/08/27 Javascript
发布Angular应用至生产环境的方法
2018/12/10 Javascript
vue 组件内获取actions的response方式
2019/11/08 Javascript
node.js使用stream模块实现自定义流示例
2020/02/13 Javascript
原生js实现轮播图特效
2020/05/04 Javascript
SQLite3中文编码 Python的实现
2017/01/11 Python
用python写个自动SSH登录远程服务器的小工具(实例)
2017/06/17 Python
django 删除数据库表后重新同步的方法
2018/05/27 Python
python 对给定可迭代集合统计出现频率,并排序的方法
2018/10/18 Python
Pycharm新手教程(只需要看这篇就够了)
2019/06/18 Python
Python 仅获取响应头, 不获取实体的实例
2019/08/21 Python
中国梦的演讲稿
2014/01/08 职场文书
食品安全承诺书
2014/05/22 职场文书
人力资源管理专业毕业生自荐书
2014/05/25 职场文书
大学生简短的自我评价
2014/09/12 职场文书
教师节老师寄语
2015/05/28 职场文书
《雷雨》教学反思
2016/02/20 职场文书
Python-OpenCV教程之图像的位运算详解
2021/06/21 Python
Python几种酷炫的进度条的方式
2022/04/11 Python
解决vue中provide inject的响应式监听
2022/04/19 Vue.js
win10电脑关机快捷键是哪个 win10快速关机的几种方法
2022/08/14 数码科技