• 【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()
  • 相关阅读:
    Markdown 列表、区块、代码(三)
    Markdown 标题、段落、文本(二)
    Markdown 简介(一)
    禅道学习笔记
    地图源改变之后mxd文件打开很慢的问题
    关于iReport报表的分页
    在VC项目中附加包含目录
    类静态成员变量的使用
    UI基础--UISlider&UIProgress
    UI基础--UISwitch
  • 原文地址:https://www.cnblogs.com/jason-syc/p/11245432.html
Copyright © 2020-2023  润新知