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测试mysql写入性能完整实例
Jan 18 Python
Python实现的拟合二元一次函数功能示例【基于scipy模块】
May 15 Python
基于Django与ajax之间的json传输方法
May 29 Python
Python 面试中 8 个必考问题
Nov 16 Python
利用python实现短信和电话提醒功能的例子
Aug 08 Python
使用python脚本自动创建pip.ini配置文件代码实例
Sep 20 Python
详解python中各种文件打开模式
Jan 19 Python
PyQt5 如何让界面和逻辑分离的方法
Mar 24 Python
Python 判断时间是否在时间区间内的实例
May 16 Python
Python web如何在IIS发布应用过程解析
May 27 Python
python 进制转换 int、bin、oct、hex的原理
Jan 13 Python
python 如何在 Matplotlib 中绘制垂直线
Apr 02 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实现Ftp用户的在线管理
2012/02/16 PHP
使用PHP破解防盗链图片的一个简单方法
2014/06/07 PHP
PHP判断IP并转跳到相应城市分站的方法
2015/03/25 PHP
windows平台中配置nginx+php环境
2015/12/06 PHP
php文件上传、下载和删除示例
2020/08/28 PHP
PHP使用CURL实现下载文件功能示例
2019/06/03 PHP
[对联广告] JS脚本类
2006/08/27 Javascript
jquery 简短右键菜单 多浏览器兼容
2010/01/01 Javascript
JavaScript DOM 学习第七章 表单的扩展
2010/02/19 Javascript
JQuery DataTable删除行后的页面更新利用Ajax解决
2013/05/17 Javascript
javascript计时器事件使用详解
2014/01/07 Javascript
整理Javascript函数学习笔记
2015/12/01 Javascript
Jquery判断form表单数据是否变化
2016/03/30 Javascript
微信小程序(应用号)开发新闻客户端实例
2016/10/24 Javascript
jQuery.datatables.js插件用法及api实例详解
2016/10/28 Javascript
Javascript之面向对象--封装
2016/12/02 Javascript
创建一般js对象的几种方式
2017/01/19 Javascript
js实现5秒倒计时重新发送短信功能
2017/02/05 Javascript
使用openSpeDiv方法实现Ecshop登录弹窗框效果
2017/03/13 Javascript
jsTree事件和交互以及插件plugins详解
2017/08/29 Javascript
三分钟学会用ES7中的Async/Await进行异步编程
2018/06/14 Javascript
详解为生产环境编译Angular2应用的方法
2018/12/10 Javascript
jQuery AJAX应用实例总结
2020/05/19 jQuery
python中安装模块包版本冲突问题的解决
2017/05/02 Python
python操作excel的方法(xlsxwriter包的使用)
2018/06/11 Python
win7+Python3.5下scrapy的安装方法
2018/07/31 Python
对python 多个分隔符split 的实例详解
2018/12/20 Python
对python中Librosa的mfcc步骤详解
2019/01/09 Python
django使用graphql的实例
2020/09/02 Python
Kaufmann Mercantile官网:家居装饰、配件、户外及更多
2018/09/28 全球购物
struct和class的区别
2015/11/20 面试题
自我鉴定书范文
2013/10/02 职场文书
自荐书封面下载
2013/11/29 职场文书
儿子婚宴答谢词
2014/01/09 职场文书
高中物理教学反思
2016/02/19 职场文书
排查MySQL生产环境索引没有效果
2022/04/11 MySQL