python中 将json数据转化为excel表格
json数据格式这里我需要进行数据转换的json数据格式有亿点复杂,为了方便我后续的处理,我想把他转换成excel来观察,json数据如下所示:借助python代码查看后,得知json数据构成:2500组数据,以列表形式存储,列表中的每一个元素构成是大小为2的列表,一号位为字符串 title ‘SH603919_2017-08-03_1203757451’,代表文档名称,而2号位为字典,包含了具体
·
json数据格式
这里我需要进行数据转换的json数据格式有亿点复杂,为了方便我后续的处理,我想把他转换成excel来观察,json数据如下所示:
借助python代码查看后,得知json数据构成:2500组数据,以列表形式存储,列表中的每一个元素构成是大小为2的列表,一号位为字符串 title ‘SH603919_2017-08-03_1203757451’,代表文档名称,而2号位为字典,包含了具体存储元素 {},如果我需要生成excel,重点在于第二个元素。
两种形式转换为excel
一、直接写入到excel
具体做法如下:
import json
import tablib
# 获取json数据
with open('json.txt', 'r') as f:
rows = json.load(f)
# 将json中的key作为header, 也可以自定义header(列名)
header=tuple([ i for i in rows[0][1].keys()])
data = []
# 循环里面的字典,将value作为数据写入进去
for i in range(len(rows)):
body = []
for v in row[i][1].values():
body.append(v)
data.append(tuple(body))
data = tablib.Dataset(*data,headers=header)
open('data.xls', 'wb').write(data.xls)
但这个方法,对数据的value部分有着严格的要求,我在运行时,报了数据格式的错,我仔细检查也没有查出来,也没有查出来,而且在value部分的数据有的类型是list,有的依然是dict,可能是dict中的数据有类型问题;
二、先通过csv模块将json数据类型转化为csv格式,再导入表格
import json
import tablib
import csv
# 获取json数据
with open('sample_train.json', 'r',encoding='utf-8',errors='ignore') as f:
rows = json.load(f)
# 将json中的key作为header, 也可以自定义header(列名)
#print(type(rows))#2500组数据,以列表形式存储,
#列表中的每一个元素构成是大小为2的列表
#一号位为字符串 title 'SH603919_2017-08-03_1203757451'
#而号位为字典,包含了具体存储元素 {}
#如果我需要生成excel,重点在于第二个元素
print(rows[0][1])
header=tuple([ i for i in rows[0][1].keys()])
# for i in rows[0][1]:
# print(type(i))
# 创建文件对象
f = open('data.csv', 'w',encoding='utf-8')
csv_write = csv.writer(f)
csv_write.writerow(rows[0][1].keys())
for i in range(len(rows)):
csv_write.writerow(rows[i][1].values())
f.close()
获取到的csv数据,以逗号分隔
利用excel来完成文件的转换
找到数据里面的自文本,导入上面的csv格式文件
最终完成excel文件的构建
更多推荐
已为社区贡献6条内容
所有评论(0)