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 相关文章推荐
Python中线程编程之threading模块的使用详解
Jun 23 Python
Python实现Windows和Linux之间互相传输文件(文件夹)的方法
May 08 Python
利用Python循环(包括while&for)各种打印九九乘法表的实例
Nov 06 Python
Python判断对象是否为文件对象(file object)的三种方法示例
Apr 26 Python
python3.6生成器yield用法实例分析
Aug 23 Python
Python List列表对象内置方法实例详解
Oct 22 Python
Python实现报警信息实时发送至邮箱功能(实例代码)
Nov 11 Python
浅谈python已知元素,获取元素索引(numpy,pandas)
Nov 26 Python
基于django 的orm中非主键自增的实现方式
May 18 Python
django正续或者倒序查库实例
May 19 Python
基于python的opencv图像处理实现对斑马线的检测示例
Nov 29 Python
Python基础之字符串格式化详解
Apr 21 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
php循环创建目录示例分享(php创建多级目录)
2014/03/04 PHP
php过滤html中的其他网站链接的方法(域名白名单功能)
2014/04/24 PHP
linux下使用crontab实现定时PHP计划任务失败的原因分析
2014/07/05 PHP
PHP预定义变量9大超全局数组用法详解
2016/04/23 PHP
JS支持带x身份证号码验证函数
2008/08/10 Javascript
JavaScript中String和StringBuffer的速度之争
2010/04/01 Javascript
利用腾讯的ip地址库做ip物理地址定位
2010/07/24 Javascript
理解JavaScript的prototype属性
2012/02/11 Javascript
jquery遍历之parent()和parents()的区别及parentsUntil()方法详解
2013/12/02 Javascript
基于jquery的simpleValidate简易验证插件
2014/01/31 Javascript
jQuery基础语法实例入门
2014/12/23 Javascript
JavaScript Math.floor方法(对数值向下取整)
2015/01/09 Javascript
jQuery给多个不同元素添加class样式的方法
2015/03/26 Javascript
js实现一个链接打开两个链接地址的方法
2015/05/12 Javascript
jQuery验证插件validate使用方法详解
2020/09/13 Javascript
JS中常用的输出方式(五种)
2016/06/12 Javascript
必备的JS调试技巧汇总
2016/07/20 Javascript
es6学习笔记之Async函数基本教程
2017/05/11 Javascript
解决Vue2.x父组件与子组件之间的双向绑定问题
2018/03/06 Javascript
vue实现学生录入系统之添加删除功能
2018/07/11 Javascript
layui 优化button按钮和弹出框的方法
2018/08/15 Javascript
node学习笔记之读写文件与开启第一个web服务器操作示例
2019/05/29 Javascript
JavaScript中判断为整数的多种方式及保留两位小数的方法
2019/09/09 Javascript
[01:28]2014DOTA2国际邀请赛中国区预选赛四大豪门直升机抵达会场
2014/05/24 DOTA
Python logging模块学习笔记
2014/05/24 Python
详细解析Python中的变量的数据类型
2015/05/13 Python
pycharm 将python文件打包为exe格式的方法
2019/01/16 Python
Django 中间键和上下文处理器的使用
2019/03/17 Python
python 随机生成10位数密码的实现代码
2019/06/27 Python
Win10系统下安装labelme及json文件批量转化方法
2019/07/30 Python
Python爬虫爬取糗事百科段子实例分享
2020/07/31 Python
Links of London官方网站:英国标志性的珠宝品牌
2017/04/09 全球购物
StubHub希腊:购买体育赛事、音乐会和剧院门票
2019/08/03 全球购物
《李广射虎》教学反思
2014/04/27 职场文书
小学生推普周国旗下讲话稿
2014/09/21 职场文书
2019大学生暑期实习心得总结
2019/08/21 职场文书