需求如题所示,excel转json,加一个数据类型判断。(根据项目实际需求写的,不是很强大)
放几个网上例子的链接:
https://blog.csdn.net/joey_2018_/article/details/80650915
https://www.cnblogs.com/zhenglisai/p/8949984.html
思路:生成列表→组合列表生成字典→字典转换成json→json格式化保存
①读取excel表格内容,每一行成为一个列表
②固定字典的键值列表
1)这里加入了一个判断数据类型
③循环与键值列表组合成字典
④再把多个字典组合
⑤转换成json格式,这里需要使用json模块
⑥存在指定的文件夹中
#思路:列表+列表生成字典,字典再转换成json文件; import json import xlrd file = 'C:\Users\14062\Desktop\Test config\Excel\test_levels.xlsx'#excel表格地址 date = xlrd.open_workbook(file)#打开excel文件 sheet1 = date.sheet_by_name('Sheet1')#读取指定excel表格的sheet1 sheet1_rows = sheet1.nrows#获取sheet1的有效行数 #sheet1_cols = sheet1.ncols#获取sheet1的有效列数 list_key = sheet1.row_values(1)#指定第2行生成列表,该列为字典的key list_type = sheet1.row_values(2)#指定第3行生成列表,判断数据类型 temp_array= []#创建一个空的列表 for row_i in range(3,sheet1_rows):#循环次数 = 有效行数 - 排除的行数 list_value = sheet1.row_values(row_i)#sheet1每行生成列 temp_array0=[] for i in range(len(list_value)): if list_type[i] != 'Number': a = str(list_value[i]) else: a = list_value[i] temp_array0.append(a) temp_dict = dict(zip(list_key,temp_array0))#每个列表分别和列表key组合生成1个字典 # c =dict(map(lambda x,y:[x,y],d,h))#方法二:2个列表组合成1个字典 temp_array.append(temp_dict) date = json.dumps(temp_array,indent=4,ensure_ascii=False)#格式化显示json文件 print(date) #写入指定文件且保存为json格式 txt_file = open('C:\Users\14062\Desktop\Test config\Output\test_levels.json','a') txt_file.write(date) txt_file.close()