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利用装饰器进行运算的实例分析
Aug 04 Python
python snownlp情感分析简易demo(分享)
Jun 04 Python
python数据结构之链表的实例讲解
Jul 25 Python
Python实现去除列表中重复元素的方法总结【7种方法】
Feb 16 Python
Python选择网卡发包及接收数据包
Apr 04 Python
Python控制Firefox方法总结
Jun 03 Python
解决webdriver.Chrome()报错:Message:'chromedriver' executable needs to be in Path
Jun 12 Python
利用pyuic5将ui文件转换为py文件的方法
Jun 19 Python
详解Pandas之容易让人混淆的行选择和列选择
Jul 10 Python
python自动化实现登录获取图片验证码功能
Nov 20 Python
Python使用pyyaml模块处理yaml数据
Apr 14 Python
python3 hdf5文件 遍历代码
May 19 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
检查url链接是否已经有参数的php代码 添加 ? 或 &amp;
2010/02/09 PHP
PHP统计nginx访问日志中的搜索引擎抓取404链接页面路径
2014/06/30 PHP
php和vue配合使用技巧和方法
2019/05/09 PHP
使用jquery动态加载javascript以减少服务器压力
2012/10/29 Javascript
读取input:file的路径并显示本地图片的方法
2013/09/23 Javascript
在javascript中实现函数数组的方法
2013/12/25 Javascript
jquery解析JSON数据示例代码
2014/03/17 Javascript
基于jquery实现的文字向上跑动类似跑马灯的效果
2014/06/17 Javascript
zepto与jquery的区别及zepto的不同使用8条小结
2016/07/28 Javascript
百度地图JavascriptApi Marker平滑移动及车头指向行径方向
2017/03/13 Javascript
JS中Map和ForEach的区别
2018/02/05 Javascript
微信小程序云开发实现增删改查功能
2019/05/17 Javascript
React中Ref 的使用方法详解
2020/04/28 Javascript
Vue微信公众号网页分享的示例代码
2020/05/28 Javascript
基于javascript的无缝滚动动画1
2020/08/07 Javascript
vue 验证两次输入的密码是否一致的方法示例
2020/09/29 Javascript
windows下pycharm安装、创建文件、配置默认模板
2018/07/31 Python
PyQt5实现简单数据标注工具
2019/03/18 Python
Python实现word2Vec model过程解析
2019/12/16 Python
python实现密码验证合格程序的思路详解
2020/06/01 Python
Python 读取位于包中的数据文件
2020/08/07 Python
python实现数据结构中双向循环链表操作的示例
2020/10/09 Python
Anaconda的安装与虚拟环境建立
2020/11/18 Python
TensorFlow2.0使用keras训练模型的实现
2021/02/20 Python
美国的Eastbay旗下的运动款子品牌:Final-Score
2018/01/01 全球购物
荷兰电脑专场:Paradigit
2018/05/05 全球购物
业务部经理岗位职责
2014/01/04 职场文书
淘宝店铺营销方案
2014/02/13 职场文书
企业安全生产责任书范本
2014/07/28 职场文书
2014年派出所工作总结
2014/11/21 职场文书
2014年人事行政工作总结
2014/12/03 职场文书
本科毕业论文致谢词
2015/05/14 职场文书
golang 实现并发求和
2021/05/08 Golang
Nginx工作模式及代理配置的使用细节
2022/03/21 Servers
mysql insert 存在即不插入语法说明
2022/03/25 MySQL
Python使用plt.boxplot()函数绘制箱图、常用方法以及含义详解
2022/08/14 Python