• 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文件的代码

  • 相关阅读:
    数据库常用命令(未完)
    辅助驾驶功能开发-功能规范篇(16)-2-领航辅助系统NAP-安全接管策略
    互联网产品说明书指南,附撰写流程与方法
    安卓毕业设计选题基于Uniapp实现的鲜花购物商城
    IT职业规划:大公司VS小公司,怎样选择更有前途?
    【AI】机器学习——朴素贝叶斯
    webpack5(高级)
    力扣刷题-二叉树-完全二叉树的节点个数
    Draw软件安装下载
    springcloud-01-注册中心
  • 原文地址:https://blog.csdn.net/qq_41904236/article/details/132667483