python怎么将json文件转为xls文件_python新手实践2——使用openpyxl模块将json文件转换为Excel...

在上一篇文章python新手实践1——使用scrapy爬取dmoz目录实践过后,得到了一个json文件,本文主要讲解如何将json文件转化为更直观的Excel文件。

之前通过scrapy我们获得了一个json文件,如下图。

5d834b203e82?utm_campaign

json源文件

可以看到,在这个文档中,所需的三种信息都有,但是看起来很费劲,所以我们要把有用信息提取成为一个Excel表格,方便阅览。

1、 先将desc中的文字进行整理,将空格去掉

修改spider中关于desc的描述

item['desc'] = (site.xpath('div/text()').extract()[0]).strip()

#site.xpath返回的是一个列表,其中第零项是描述部分,strip()用于删除字符串前后的空格。

重新生成json文件

5d834b203e82?utm_campaign

整理完成

整理完成

2、 使用openpyxl模块进行Excel操作

5d834b203e82?utm_campaign

安装openpyxl模块

3、 打开json文件,将其写入py文件中

import json

with open("C:/Users/Administrator/Desktop/SpiderNO1/items.json",'r') as load_f:

load_dict = json.load(load_f)

print(load_dict)

5d834b203e82?utm_campaign

可以看到json文件被导入为列表,列表的每一个元素是一个字典,内存储着我们需要的信息。

4、建立空白Excel文件

import openpyxl #导入openpyxl模块

wb = openpyxl.Workbook() #新建工作簿

wb.save('excel.xlsx') #保存文件

5d834b203e82?utm_campaign

生成空白的xlsx文件

可以看到在python的根目录下生成了名为'excel.xlsx'的表格文件

5、填充表格

单元格赋值:

sheet['A1'] = 'Title'

sheet['B1'] = 'Link'

sheet['C1'] = 'Description'

循环填充下方的单元格

for each in range(len(load_dict)):

sheet['A' + str(each+2)] = str(load_dict[each]['title'])

sheet['B' + str(each+2)] = str(load_dict[each]['link'])

sheet['C' + str(each+2)] = str(load_dict[each]['desc'])

6、美化表格

sheet.column_dimensions['A'].width = 50 #列宽设置

sheet.column_dimensions['B'].width = 75

sheet.column_dimensions['C'].width = 200

生成的表格:

5d834b203e82?utm_campaign

生成结果

美观大方 OK!

也可以将其直接写入spider中,达到的效果是相同的。

代码清单:

import openpyxl

import json

wb = openpyxl.Workbook()

sheet = wb.get_active_sheet()

sheet.column_dimensions['A'].width = 50

sheet.column_dimensions['B'].width = 75

sheet.column_dimensions['C'].width = 200

sheet['A1'] = 'Title'

sheet['B1'] = 'Link'

sheet['C1'] = 'Description'

with open("C:/Users/Administrator/Desktop/SpiderNO1/items.json",'r') as load_f:

load_dict = json.load(load_f)

for each in range(len(load_dict)):

sheet['A' + str(each+2)] = str(load_dict[each]['title'])

sheet['B' + str(each+2)] = str(load_dict[each]['link'])

sheet['C' + str(each+2)] = str(load_dict[each]['desc'])

wb.save('excel.xlsx')

本博客所有文章均为作者原创,享有版权所有权,未经许可,严禁转载或修改!

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值