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之做一个小游戏
Sep 28 Python
python安装Scrapy图文教程
Aug 14 Python
Python常见字符串操作函数小结【split()、join()、strip()】
Feb 02 Python
Python实现的三层BP神经网络算法示例
Feb 07 Python
matplotlib savefig 保存图片大小的实例
May 24 Python
Django用户认证系统 User对象解析
Aug 02 Python
Django之模板层的实现代码
Sep 09 Python
关于Numpy数据类型对象(dtype)使用详解
Nov 27 Python
python中逻辑与或(and、or)和按位与或异或(&amp;、|、^)区别
Aug 05 Python
Idea安装python显示无SDK问题解决方案
Aug 12 Python
使用Selenium实现微博爬虫(预登录、展开全文、翻页)
Apr 13 Python
Python&Matlab实现樱花的绘制
Apr 07 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
如何分别全角和半角以避免乱码
2006/10/09 PHP
php !function_exists(&quot;T7FC56270E7A70FA81A5935B72EACBE29&quot;))代码解密
2011/01/07 PHP
php缓存技术详细总结
2013/08/07 PHP
PHP的foreach中使用引用时需要注意的一个问题和解决方法
2014/05/29 PHP
支持中文、字母、数字的PHP验证码
2015/05/04 PHP
textContent在Firefox下与innerText等效的属性
2007/05/12 Javascript
用Javascript数组处理多个字符串的连接问题
2009/08/20 Javascript
ExtJS4 组件化编程,动态加载,面向对象,Direct
2011/05/12 Javascript
40款非常棒的jQuery 插件和制作教程(系列二)
2011/11/02 Javascript
JavaScript设置首页和收藏页面的小例子
2013/11/11 Javascript
快速掌握Node.js模块封装及使用
2016/03/21 Javascript
浅谈javascript中的加减时间
2016/07/12 Javascript
EasyUI学习之DataGird分页显示数据
2016/12/29 Javascript
jQuery插件Echarts实现的双轴图效果示例【附demo源码下载】
2017/03/04 Javascript
JavaScript登录记住密码操作(超简单代码)
2017/03/22 Javascript
JavaScript中变量提升与函数提升经典实例分析
2018/07/26 Javascript
微信小程序CSS3动画下拉菜单效果
2018/11/04 Javascript
python中列表元素连接方法join用法实例
2015/04/07 Python
利用Python的装饰器解决Bottle框架中用户验证问题
2015/04/24 Python
自己使用总结Python程序代码片段
2015/06/02 Python
python利用rsa库做公钥解密的方法教程
2017/12/10 Python
Python if语句知识点用法总结
2018/06/10 Python
Python中关键字global和nonlocal的区别详解
2018/09/03 Python
Python3.5集合及其常见运算实例详解
2019/05/01 Python
python super的使用方法及实例详解
2019/09/25 Python
jupyter notebook tensorflow打印device信息实例
2020/04/20 Python
浅谈matplotlib 绘制梯度下降求解过程
2020/07/12 Python
Staples加拿大官方网站:办公用品一站式采购
2016/09/25 全球购物
Luxplus丹麦:香水和个人护理折扣
2018/04/23 全球购物
SISLEY希思黎官方旗舰店:享誉全球的奢华植物美容品牌
2018/04/25 全球购物
一份关于丢失公司财物的检讨书
2014/09/19 职场文书
房屋转让协议书
2014/10/18 职场文书
中国合伙人观后感
2015/06/02 职场文书
2016特色励志班级口号
2015/12/24 职场文书
SpringBoot整合MongoDB的实现步骤
2021/06/23 MongoDB
Vue全局事件总线你了解吗
2022/02/24 Vue.js