excel转json (树状结构)
一、python读取excel 转json
目的:在于将excel的数据转换成json格式。
import xlrd, json
def read_xlsx_file(filename):
# 打开Excel文件
data = xlrd.open_workbook(filename)
# 读取第一个工作表
table = data.sheets()[0]
# 统计行数
rows = table.nrows
data = [] # 存放数据
for i in range(1, rows):
values = table.row_values(i)
data.append(
(
{
"kbName": str(str(values[0])),
"cateOne": values[1],
"cateTwo": values[2],
"cateThree": values[3],
"cateFour": values[4],
}
)
)
return data
if __name__ == '__main__':
d1 = read_xlsx_file("新建 XLS 工作表.xls")
# 字典中的数据都是单引号,但是标准的json需要双引号
js = json.dumps(d1, sort_keys=True, ensure_ascii=False, indent=4, separators=(',', ':'))
print(js)
# 前面的数据只是数组,加上外面的json格式大括号
js = "{" + js + "}"
# 可读可写,如果不存在则创建,如果有内容则覆盖
jsFile = open("./text3.json", "w+", encoding='utf-8')
jsFile.write(js)
jsFile.close()
二、java 转成响应的树状结构
虽然读取的是json格式,但是没有读成树状结构,因为python不熟悉,所以用java改成树状结构。
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import org.junit.Test;
import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;
import java.util.stream.Stream;
public class TansTo {
@Test
public void