文件内容:
excel内容:
代码:
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))
结果:
补充知识: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操作就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。
《魔兽世界》大逃杀!60人新游玩模式《强袭风暴》3月21日上线
暴雪近日发布了《魔兽世界》10.2.6 更新内容,新游玩模式《强袭风暴》即将于3月21 日在亚服上线,届时玩家将前往阿拉希高地展开一场 60 人大逃杀对战。
艾泽拉斯的冒险者已经征服了艾泽拉斯的大地及遥远的彼岸。他们在对抗世界上最致命的敌人时展现出过人的手腕,并且成功阻止终结宇宙等级的威胁。当他们在为即将于《魔兽世界》资料片《地心之战》中来袭的萨拉塔斯势力做战斗准备时,他们还需要在熟悉的阿拉希高地面对一个全新的敌人──那就是彼此。在《巨龙崛起》10.2.6 更新的《强袭风暴》中,玩家将会进入一个全新的海盗主题大逃杀式限时活动,其中包含极高的风险和史诗级的奖励。
《强袭风暴》不是普通的战场,作为一个独立于主游戏之外的活动,玩家可以用大逃杀的风格来体验《魔兽世界》,不分职业、不分装备(除了你在赛局中捡到的),光是技巧和战略的强弱之分就能决定出谁才是能坚持到最后的赢家。本次活动将会开放单人和双人模式,玩家在加入海盗主题的预赛大厅区域前,可以从强袭风暴角色画面新增好友。游玩游戏将可以累计名望轨迹,《巨龙崛起》和《魔兽世界:巫妖王之怒 经典版》的玩家都可以获得奖励。
更新动态
- 凤飞飞《我们的主题曲》飞跃制作[正版原抓WAV+CUE]
- 刘嘉亮《亮情歌2》[WAV+CUE][1G]
- 红馆40·谭咏麟《歌者恋歌浓情30年演唱会》3CD[低速原抓WAV+CUE][1.8G]
- 刘纬武《睡眠宝宝竖琴童谣 吉卜力工作室 白噪音安抚》[320K/MP3][193.25MB]
- 【轻音乐】曼托凡尼乐团《精选辑》2CD.1998[FLAC+CUE整轨]
- 邝美云《心中有爱》1989年香港DMIJP版1MTO东芝首版[WAV+CUE]
- 群星《情叹-发烧女声DSD》天籁女声发烧碟[WAV+CUE]
- 刘纬武《睡眠宝宝竖琴童谣 吉卜力工作室 白噪音安抚》[FLAC/分轨][748.03MB]
- 理想混蛋《Origin Sessions》[320K/MP3][37.47MB]
- 公馆青少年《我其实一点都不酷》[320K/MP3][78.78MB]
- 群星《情叹-发烧男声DSD》最值得珍藏的完美男声[WAV+CUE]
- 群星《国韵飘香·贵妃醉酒HQCD黑胶王》2CD[WAV]
- 卫兰《DAUGHTER》【低速原抓WAV+CUE】
- 公馆青少年《我其实一点都不酷》[FLAC/分轨][398.22MB]
- ZWEI《迟暮的花 (Explicit)》[320K/MP3][57.16MB]