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

前言

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

一、代码

python 复制代码
# coding=UTF-8
import xlrd
import json

def convert2json(filename,keep_header=False):
    xlrd.Book.encoding = "utf-8" 
    # 打开 Excel 文件
    workbook = xlrd.open_workbook(filename)
    
    # 获取第一个工作表
    worksheet = workbook.sheet_by_index(0)
    
    # 创建一个空列表
    data = []
    
    # 遍历每一行
    for row_index in range(worksheet.nrows):
        # 读取每一行的数据
        row_data = worksheet.row_values(row_index)
        # 将读取到的数据添加到列表中
        data.append(row_data)

    dic = {}
    content = []
    row = len(data)
    column = len(data[0])
    start = 1-int(keep_header)
           
    for i in range(start,row,1):            
        for j in range(column):
            content.append(data[i][j])
        dic[data[i][0]] = content
        content = []

    with open('测试.json', 'w', encoding='utf-8') as file:
        json.dump(dic, file, ensure_ascii=False, indent=2)
    
if __name__ == "__main__":
    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文件的代码

相关推荐
超级架构师4 分钟前
让 Fortran 模型自己调用 Agent:原生 Fortran 2008 实现深度剖析
人工智能·python·架构·机器人·开源·fortran
小蒜学长8 分钟前
基于Django+Vue喵汪联盟宠物领养系统的设计与实现(代码+数据库+LW)
后端·python·django·宠物领养系统·流程规范化
云边有个稻草人18 分钟前
Prometheus Pushgateway教程:离线任务指标上报、Shell与Python示例、远程访问
开发语言·python·prometheus
fanruitian32 分钟前
pycharm 使用anaconda
ide·python·pycharm
Dwzun34 分钟前
基于SpringBoot3+Vue3的油莎豆种植管理系统
java·前端·vue.js·spring boot·后端·python·计算机网络
代码山河9 小时前
Python就业方向全解析:后端、爬虫、数据分析、AI你选哪个?
python·学习·架构·教程·面向对象·项目
在世修行9 小时前
智学文枢:题目流水线
python·多线程·状态机·pyside
梯度下降者10 小时前
零基础入门Python 爬虫
爬虫·python·数据分析·入门指南·webcrawler
“AI国潮设计-小江”11 小时前
【AIGC实战】Python+Stable Diffusion打造“英歌舞财神”IP,解锁“马到成功”等爆款情绪营销文案设计
开发语言·人工智能·python·prompt·aigc
benchmark_cc12 小时前
用 Python 拉 A 股全市场实时快照:Notebook 请求、结果校验与易错点
python·数据分析·pandas·量化交易·股票数据·quantdash