• python应用(3):读取excel文件并导出为json文件


    前言

    读取excel文件并导出为json文件,便于其他程序调用

    一、代码

    1. # coding=UTF-8
    2. import xlrd
    3. import json
    4. def convert2json(filename,keep_header=False):
    5. xlrd.Book.encoding = "utf-8"
    6. # 打开 Excel 文件
    7. workbook = xlrd.open_workbook(filename)
    8. # 获取第一个工作表
    9. worksheet = workbook.sheet_by_index(0)
    10. # 创建一个空列表
    11. data = []
    12. # 遍历每一行
    13. for row_index in range(worksheet.nrows):
    14. # 读取每一行的数据
    15. row_data = worksheet.row_values(row_index)
    16. # 将读取到的数据添加到列表中
    17. data.append(row_data)
    18. dic = {}
    19. content = []
    20. row = len(data)
    21. column = len(data[0])
    22. start = 1-int(keep_header)
    23. for i in range(start,row,1):
    24. for j in range(column):
    25. content.append(data[i][j])
    26. dic[data[i][0]] = content
    27. content = []
    28. with open('测试.json', 'w', encoding='utf-8') as file:
    29. json.dump(dic, file, ensure_ascii=False, indent=2)
    30. if __name__ == "__main__":
    31. convert2json('测试.xls',keep_header=False)

    二、说明

    高版本的xlrd库只支持读写xls格式的文件,不支持xlsx,否则会报错。(这个有点无语)

    需要将表格内容按xls格式另存为,不能只修改文件后缀名。

    json.dump(dic, file, ensure_ascii=False, indent=2)

    这行代码将读取构建好的字典内容转为json文件并保存,其中ensure_ascii=False用于保留原有字符,否则中文会出现乱码;indent=2将json内容换行缩进2字符,否则所有json内容均在一行内,没有换行导致查看非常不变

    start = 1-int(keep_header)

    这行代码将“是否保留表头”的布尔值转换为数字,当布尔值为True时从0开始for循环;当布尔值为False时从1开始for循环,这样可以节约for循环部分代码,避免出现过多if else

    三、后续更新

    后续补充纵向布局excel内容的转换(将for循环顺序调转即可),以及将json文件转为excel文件的代码

  • 相关阅读:
    STM32F303RE 四个ADC同步规则采样
    使用python统计jira bug数据
    详解​互联网中CI和CD
    我的世界优化模组推荐:1.19.2 Fabric优化模组
    CMake中set/unset的使用
    解决dockerfile创建镜像时pip install报错的bug
    PHP代码审计9—代码执行漏洞
    接口自动化测试---单接口自动化测试与业务场景自动化测试之间的区别?
    Perl的LWP::UserAgent库爬虫程序怎么写
    网站图床系统源码
  • 原文地址:https://blog.csdn.net/qq_41904236/article/details/132667483