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通过colorama模块在控制台输出彩色文字的方法
Mar 19 Python
安装dbus-python的简要教程
May 05 Python
python实现线程池的方法
Jun 30 Python
python读写ini配置文件方法实例分析
Jun 30 Python
Python实现视频下载功能
Mar 14 Python
聊聊Python中的pypy
Jan 12 Python
Python八大常见排序算法定义、实现及时间消耗效率分析
Apr 27 Python
python 统计一个列表当中的每一个元素出现了多少次的方法
Nov 14 Python
Python进阶之全面解读高级特性之切片
Feb 19 Python
Python Threading 线程/互斥锁/死锁/GIL锁
Jul 21 Python
解决python有时候import不了当前的包问题
Aug 28 Python
python编写函数注意事项总结
Mar 29 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 cli模式学习(PHP命令行模式)
2013/06/03 PHP
PHP实现APP微信支付的实例讲解
2018/02/10 PHP
浅析PHP 中move_uploaded_file 上传中文文件名失败
2019/04/17 PHP
用js实现的一个Flash滚动轮换显示图片代码生成器
2007/03/14 Javascript
2007/12/23更新创意无限,简单实用(javascript log)
2007/12/24 Javascript
JavaScript Math.ceil 方法(对数值向上取整)
2015/01/09 Javascript
深入探寻seajs的模块化与加载方式
2015/04/14 Javascript
Angularjs 动态改变title标题(兼容ios)
2016/12/29 Javascript
从零学习node.js之文件操作(三)
2017/02/21 Javascript
微信小程序开发之相册选择和拍照详解及实例代码
2017/02/22 Javascript
js实现图片放大展示效果
2017/08/30 Javascript
修改UA在PC中访问只能在微信中打开的链接方法
2017/11/27 Javascript
详解ES6语法之可迭代协议和迭代器协议
2018/01/13 Javascript
从vue基础开始创建一个简单的增删改查的实例代码(推荐)
2018/02/11 Javascript
详解Angular-ui-BootStrap组件的解释以及使用
2018/07/13 Javascript
Vue在页面数据渲染完成之后的调用方法
2018/09/11 Javascript
详解小程序设置缓存并且不覆盖原有数据
2019/04/15 Javascript
如何在现代JavaScript中编写异步任务
2021/01/31 Javascript
Python实现将不规范的英文名字首字母大写
2016/11/15 Python
Python通过matplotlib画双层饼图及环形图简单示例
2017/12/15 Python
JavaScript中的模拟事件和自定义事件实例分析
2018/07/27 Python
flask应用部署到服务器的方法
2019/07/12 Python
python实现图片压缩代码实例
2019/08/12 Python
Python基于当前时间批量创建文件
2020/05/07 Python
python怎么判断模块安装完成
2020/06/19 Python
Python抓包并解析json爬虫的完整实例代码
2020/11/03 Python
Python使用windows设置定时执行脚本
2020/11/12 Python
css3之UI元素状态伪类选择器实例演示
2017/08/11 HTML / CSS
eBay法国购物网站:eBay.fr
2017/10/21 全球购物
银行学习十八大感想
2014/01/11 职场文书
破坏寝室公物检讨书
2014/11/17 职场文书
2014年电信员工工作总结
2014/12/19 职场文书
学术研讨会欢迎词
2015/01/26 职场文书
原告代理词范文
2015/05/25 职场文书
Python anaconda安装库命令详解
2021/10/16 Python
SQL Server 中的事务介绍
2022/05/20 SQL Server