使用python对excle和json互相转换的示例


Posted in Python onOctober 23, 2018

python 版本:2.7

只是读取excel的话可以直接使用xlrd

1、excle to json

代码如下

# -*-coding:utf8 -*-
import xlrd
from collections import OrderedDict
import json

import codecs

file_name=raw_input('请输入要转换的excle文件路径:')
wb = xlrd.open_workbook(file_name)
dict_list = []
sh = wb.sheet_by_index(0)
title = sh.row_values(0)
for rownum in range(1, sh.nrows):
 rowvalue = sh.row_values(rownum)
 single = OrderedDict()
 for colnum in range(0, len(rowvalue)):
 
  print(title[colnum], rowvalue[colnum])
  single[title[colnum]] = rowvalue[colnum]
 dict_list.append(single)
 
j = json.dumps(dict_list)


with codecs.open(file_name[:-5]'.json',"w","utf-8") as f:
 f.write(j)

2、json to excle

代码如下

注意:标题会写在最后一行,主要针对字段不同的json数据。

import json
import os
from openpyxl import Workbook
wb = Workbook()
ws = wb.active


cols = []
def json2excel(jsfile, excfile):
# 读取json数据
a = 1
if os.path.exists(jsfile):
with open(jsfile, 'r') as fp:
while True:
line = fp.readline()
if not line:
break
jsdata = json.loads(line)
for k in jsdata.keys():
if k not in cols:
cols.append(k)
rowdata = []
for col in cols:
rowdata.append(jsdata.get(col))
print '正在写入的行数:'a
ws.append(rowdata) # 写行
a += 1
ws.append(cols) # 标题
print('保存中')
wb.save(excfile) # 保存

if __name__ == '__main__':
import sys
if len(sys.argv) == 3:
jsfile = sys.argv[1]
excfile = sys.argv[2]
json2excel(jsfile, excfile)
else:
print("Usage: python writeExc.py xx.json xx.xlsx")

以上这篇使用python对excle和json互相转换的示例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python实现代理服务功能实例
Nov 15 Python
浅谈python多线程和队列管理shell程序
Aug 04 Python
Windows下搭建python开发环境详细步骤
Jul 20 Python
Python的SQLalchemy模块连接与操作MySQL的基础示例
Jul 11 Python
详解Python中的静态方法与类成员方法
Feb 28 Python
Python编程之event对象的用法实例分析
Mar 23 Python
Python实现的计算器功能示例
Apr 26 Python
详解Python 解压缩文件
Apr 09 Python
python opencv如何实现图片绘制
Jan 19 Python
Python脚本实现监听服务器的思路代码详解
May 28 Python
Python如何设置指定窗口为前台活动窗口
Aug 12 Python
在终端启动Python时报错的解决方案
Nov 20 Python
Python实现将Excel转换成为image的方法
Oct 23 #Python
python pandas实现excel转为html格式的方法
Oct 23 #Python
使用11行Python代码盗取了室友的U盘内容
Oct 23 #Python
python利用pandas将excel文件转换为txt文件的方法
Oct 23 #Python
python实现根据指定字符截取对应的行的内容方法
Oct 23 #Python
python中正则表达式 re.findall 用法
Oct 23 #Python
python 实现批量xls文件转csv文件的方法
Oct 23 #Python
You might like
UCenter Home二次开发指南
2009/05/28 PHP
php全角字符转换为半角函数
2014/02/07 PHP
Smarty模板变量调节器用法分析
2016/05/23 PHP
分享一个漂亮的php验证码类
2016/09/29 PHP
详解PHP神奇又有用的Trait
2019/03/25 PHP
defer属性导致引用JQuery的页面报“浏览器无法打开网站xxx,操作被中止”错误的解决方法
2010/04/27 Javascript
javascript 利用Image对象实现的埋点(某处的点击数)统计
2012/12/28 Javascript
微信小程序 数据绑定详解及实例
2016/10/25 Javascript
轻松理解JavaScript之AJAX
2017/03/15 Javascript
Vue服务端渲染和Vue浏览器端渲染的性能对比(实例PK )
2017/03/31 Javascript
JS实现生成由字母与数字组合的随机字符串功能详解
2018/05/25 Javascript
详解angular分页插件tm.pagination二次触发问题解决方案
2018/07/20 Javascript
详解webpack4之splitchunksPlugin代码包分拆
2018/12/04 Javascript
vue3.0中setup使用(两种用法)
2020/12/02 Vue.js
[04:22]DOTA2上海特级锦标赛主赛事第四日TOP10
2016/03/06 DOTA
[40:03]Liquid vs Optic 2018国际邀请赛淘汰赛BO3 第一场 8.21
2018/08/22 DOTA
Python时间的精准正则匹配方法分析
2017/08/17 Python
Python实现打印螺旋矩阵功能的方法
2017/11/21 Python
利用python解决mysql视图导入导出依赖的问题
2017/12/17 Python
详解python函数传参是传值还是传引用
2018/01/16 Python
python3 实现一行输入,空格隔开的示例
2018/11/14 Python
Python常见数据类型转换操作示例
2019/05/08 Python
python 自动轨迹绘制的实例代码
2019/07/05 Python
python多环境切换及pyenv使用过程详解
2019/09/27 Python
Django3.0 异步通信初体验(小结)
2019/12/04 Python
基于canvas使用贝塞尔曲线平滑拟合折线段的方法
2018/01/10 HTML / CSS
AmazeUI的下载配置与Helloworld的实现
2020/08/19 HTML / CSS
《最后的姿势》教学反思
2014/02/27 职场文书
解除施工合同协议书
2014/10/17 职场文书
乌镇导游词
2015/02/02 职场文书
绿色环保倡议书
2015/04/28 职场文书
岁月神偷观后感
2015/06/11 职场文书
签字仪式主持词
2015/07/03 职场文书
Django利用AJAX技术实现博文实时搜索
2021/05/06 Python
利用python做数据拟合详情
2021/11/17 Python
基于PyQt5制作一个群发邮件工具
2022/04/08 Python