python中将json数据结构转化为excel表格
文件数据
[ {
"name":"23675-用户增长产品经理(北京)", "csategory":"产品/项日类", "count":"1", "loaction":"一北京", "tiem":"2018-08-06", }, {
"name":"23675-用户增长产品经理(北京)", "category":"产品/项日类", "count":"1", "loaction":"一北京", "tiem":"2018-08-06" }, {
"name":"23675-用户增长产品经理(北京)", "category":"产品/项日类", "count":"1", "loaction":"一北京", "tiem":"2018-08-06"}, {
"name":"23675-用户增长产品经理(北京)", "category":"产品/项日类", "count":"1", "loaction":"一北京", "tiem":"2018-08-06" } ]
报错问题总结
- JSONDecodeError: 一般为json格式错误
- json在线解析和格式校验
- keyerror: 这种错误没复现。如果有这种错误,把文件数据发出来,再瞅瞅
两种形式转换为excel
一、直接写入到excel
- 前提需要安装
tablib - 命令:
pip install tablib[all]
#!/usr/bin/python3 # -*- coding: utf-8 -*- import json import tablib # json.text文件的格式: [{"a":1},{"a":2},{"a":3},{"a":4},{"a":5}] # 获取json数据 with open('json.txt', 'r') as f: rows = json.load(f) # 将json中的key作为header, 也可以自定义header(列名) header=tuple([ i for i in rows[0].keys()]) data = [] # 循环里面的字典,将value作为数据写入进去 for row in rows: body = [] for v in row.values(): body.append(v) data.append(tuple(body)) data = tablib.Dataset(*data,headers=header) open('data.xls', 'wb').write(data.xls)
二、先通过csv模块将json数据类型转化为csv格式,再导入表格
#!/usr/bin/python3 # -*- coding: utf-8 -*- import csv # 获取json数据 import json with open('json.txt', 'r') as f: rows = json.load(f) # 创建文件对象 f = open('data.csv', 'w') # 通过文件创建csv对象 csv_write = csv.writer(f) # writerow: 按行写入, writerows: 是批量写入 # 写入数据 取列表的第一行字典,用字典的key值做为头行数据 csv_write.writerow(rows[0].keys()) # 循环里面的字典,将value作为数据写入进去 for row in rows: csv_write.writerow(row.values()) # 关闭打开的文件 f.close()
这是csv格式数据,以逗号分隔

先新建excel表格

找到数据里面的自文本,导入上面的csv格式文件

选择逗号分隔,下面是数据预览,没问题就可以点下一步了

按照上面不走来即可,就可以看到数据已经转为表格形式了。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/232338.html原文链接:https://javaforall.net
