Python读取Json字典写入Excel表格的方法


Posted in Python onJanuary 03, 2018

需求:

因需要将一json文件中大量的信息填入一固定格式的Excel表格,单纯的复制粘贴肯定也能完成,但是想偷懒一下,于是借助Python解决问题。

环境:

Windows7 +Python2.7 +Xlwt

具体分析:

原始文件为json列表,列表中有多个字典,生成Excel文件需要将列表中的字典的键值按键对应排列,也就是说,所有为“XX”的键对应的值写在一列,且每个字典中的不同键的键值保证在同一行。
解决思路是,读取json文件,然后遍历字典的键和值,读完第一个字典并写入Excel后换行,读取第二个字典。

代码:

# -*- coding: utf-8 -*-
import xlwt
import json

# 创建excel工作表
workbook = xlwt.Workbook(encoding='utf-8')
worksheet = workbook.add_sheet('sheet1')

# 设置表头
worksheet.write(0, 0, label='NAME')
worksheet.write(0, 1, label='LEN')
worksheet.write(0, 2, label='ID')
worksheet.write(0, 3, label='OTHER')


# 读取json文件
with open('test.json', 'r') as f:
 data = json.load(f)

# 将json字典写入excel
# 变量用来循环时控制写入单元格,感觉有更好的表达方式
val1 = 1
val2 = 1
val3 = 1
val4 = 1
for list_item in data:
 for key, value in list_item.items():
  if key == "NAME":
   worksheet.write(val1, 0, value)
   val1 += 1
  elif key == "LEN":
   worksheet.write(val2, 1, value)
   val2 += 1
  elif key == "ID":
   worksheet.write(val3, 2, value)
   val3 += 1
  elif key == "OTHER":
   worksheet.write(val4, 3, value)
   val4 += 1
  else:
   pass

# 保存
workbook.save('OK.xls')

辅助文件:

test.json

[
  {
   "OTHER": "code",
   "NAME": "whc",
   "LEN": 100,
   "ID": "01-0001"
  },
  {
   "OTHER": "house",
   "NAME": "ikd",
   "LEN": 200,
   "ID": "01-0002"
  },
  {
   "OTHER": "thank",
   "NAME": "qxf",
   "LEN": 300,
   "ID": "01-0003"
  },
  {
   "OTHER": "music",
   "NAME": "kmn",
   "LEN": 400,
   "ID": "01-0004"
  },
  {
   "OTHER": "big",
   "NAME": "vbf",
   "LEN": 500,
   "ID": "01-0005"
  },
  {
   "OTHER": "over",
   "NAME": "wsr",
   "LEN": 600,
   "ID": "01-0006"
  }
]

结果示例:

ok.xls

Python读取Json字典写入Excel表格的方法

其它说明:

1、以上代码直接生成结果与图中示例对齐方式不同,可在代码中加入格式控制。
2、实际使用的过程中列表字典中还包含了字典,同样进入遍历即可。
3、代码很简陋,希望各位提意见帮忙改进。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
c++生成dll使用python调用dll的方法
Jan 20 Python
Python实现求两个csv文件交集的方法
Sep 06 Python
python中正则表达式的使用方法
Feb 25 Python
python如何把嵌套列表转变成普通列表
Mar 20 Python
Python PyQt4实现QQ抽屉效果
Apr 20 Python
python正则表达式去除两个特殊字符间的内容方法
Dec 24 Python
将string类型的数据类型转换为spark rdd时报错的解决方法
Feb 18 Python
彻底理解Python中的yield关键字
Apr 01 Python
Python实现个人微信号自动监控告警的示例
Jul 03 Python
WxPython实现无边框界面
Nov 18 Python
Python SQLAlchemy库的使用方法
Oct 13 Python
pandas提升计算效率的一些方法汇总
May 30 Python
python基于ID3思想的决策树
Jan 03 #Python
python遍历文件夹下所有excel文件
Jan 03 #Python
Python将多份excel表格整理成一份表格
Jan 03 #Python
Python将多个excel文件合并为一个文件
Jan 03 #Python
python中的字典操作及字典函数
Jan 03 #Python
Python将多个excel表格合并为一个表格
Feb 22 #Python
使用Python+Splinter自动刷新抢12306火车票
Jan 03 #Python
You might like
无刷新动态加载数据 滚动条加载适合评论等页面
2013/10/16 PHP
分享下php5类中三种数据类型的区别
2015/01/26 PHP
PHP从二维数组得到N层分类树的实现代码
2016/10/11 PHP
php解决DOM乱码的方法示例代码
2016/11/20 PHP
PHP实现获取第一个中文首字母并进行排序的方法
2017/05/09 PHP
PHP simplexml_import_dom()函数讲解
2019/02/03 PHP
PHP封装类似thinkphp连贯操作数据库Db类与简单应用示例
2019/05/08 PHP
laravel框架 api自定义全局异常处理方法
2019/10/11 PHP
浏览器无法运行JAVA脚本的解决方法
2008/01/09 Javascript
jQuery在vs2008及js文件中的无智能提示的解决方法
2010/12/30 Javascript
jquery一般方法介绍 入门参考
2011/06/21 Javascript
用js实现控件的隐藏及style.visibility的使用
2013/06/14 Javascript
一款基于jQuery的图片场景标注提示弹窗特效
2015/01/05 Javascript
JQuery用户名校验的具体实现
2016/03/18 Javascript
AngularJS入门教程之AngularJS模型
2016/04/18 Javascript
JS组件Bootstrap按钮组与下拉按钮详解
2016/05/10 Javascript
如何防止INPUT按回车自动提交表单FORM
2016/12/06 Javascript
前端框架学习总结之Angular、React与Vue的比较详解
2017/03/14 Javascript
npm 常用命令详解(小结)
2019/01/17 Javascript
nodejs nedb 封装库与使用方法示例
2020/02/06 NodeJs
javascript中的offsetWidth、clientWidth、innerWidth及相关属性方法
2020/05/14 Javascript
VueCli生产环境打包部署跨域失败的解决
2020/11/13 Javascript
Python实现学生成绩管理系统
2020/04/05 Python
用python3教你任意Html主内容提取功能
2018/11/05 Python
django模板加载静态文件的方法步骤
2019/03/01 Python
PyQt QListWidget修改列表项item的行高方法
2019/06/20 Python
Gauss-Seidel迭代算法的Python实现详解
2019/06/29 Python
keras实现基于孪生网络的图片相似度计算方式
2020/06/11 Python
一道SQL存储过程面试题
2016/10/07 面试题
Linux机考试题
2015/10/16 面试题
值传递还是引用传递
2015/02/08 面试题
高一地理教学反思
2014/01/18 职场文书
2014乡镇干部纪律作风整顿思想汇报
2014/09/13 职场文书
2015年办公室文员工作总结
2015/04/24 职场文书
管辖权异议上诉状
2015/05/23 职场文书
高性能跳频抗干扰宽带自组网电台
2022/02/18 无线电