由于需要,编写一个转换脚本,使用的2.7版本,3.7的区别在代码里已经标注了,具体代码如下:
import json
import tablib
import io
# 获取json数据 2.7需要使用io.open,3.7可以直接使用open
with io.open('111.json',encoding='utf-8') as f:
json = json.load(f)
# 将json中的key作为header, 也可以自定义header(列名)
header = []
data = []
def getTupleData(row):
body = []
for v in row.values():
body.append(v)
data.append(tuple(body))
if type(json) is dict:
for key,value in json.items():
if len(header) == 0:
header = tuple([ i for i in value.keys()])
getTupleData(value)
elif type(json) is list:
header = tuple([ i for i in json[0].keys()])
for v in json:
getTupleData(v)
else:
print('The type of data is not list or dict!Type is ',type(json))
#将含标题和内容的数据放到data里
if len(header) > 0:
data = tablib.Dataset(*data,headers=header)
#写到指定路径
open('/Users/xxx/Desktop/111.xlsx', 'wb').write(data.xlsx)