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

需求:

因需要将一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

2018010310541112.png

其它说明:

1、以上代码直接生成结果与图中示例对齐方式不同,可在代码中加入格式控制。

2、实际使用的过程中列表字典中还包含了字典,同样进入遍历即可。

3、代码很简陋,希望各位提意见帮忙改进。

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

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值