【Python&实际需求练习----①】exce转json

需求如题所示,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()
原文地址:https://www.cnblogs.com/jason-syc/p/11245432.html