【Python】将.xlsx文件内容读取为json格式 (Execl转换为Json)

2022/3/4 11:15:13

本文主要是介绍【Python】将.xlsx文件内容读取为json格式 (Execl转换为Json),对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

 

将execl 表格数据转换为json


 

方法一:按列读取数据(仅支持单条case)

# coding:utf-8
import ast
import json

import xlrd
import xlwt

from base.logger import *

class execl_tools:

    # 获取xlsx内容
    def get_xlsx_data(self):
        xlsx_pathname = r"../data/test_110.xlsx"
        # 打开xlsx文件
        workbook = xlrd.open_workbook(xlsx_pathname)
        # 根据sheetname获取内容
        sheet = workbook.sheet_by_name("110")
        # 获取总行/列数
        rownum = sheet.nrows
        colnum = sheet.ncols
        logs.debug(f"{sheet.name} sheet总行数:{rownum}")
        logs.debug(f"{sheet.name} sheet总行数:{colnum}")

        # 定义一个list
        content = {}
        # 按列获取数据
        for i in range(colnum):
            col_value = sheet.col_values(i)
            # 列名包含[]时 将value值进行处理
            if '[]' in col_value[0]:
                logs.debug(f"array需要转换为object:{col_value}")
                col_value[0] = str(col_value[0]).replace("[]", "")
                col_value[1] = ast.literal_eval(col_value[1])
            else:
                logs.debug(col_value)
            content.update({col_value[0]: col_value[1]})

        logs.debug(json.dumps(content, ensure_ascii=False))




if __name__ == "__main__":
    execl_tools().get_xlsx_data()

 

执行结果:

 

 

 

方法二:按行读取数据(支持多条case)

 # 获取xlsx内容
    def get_xlsx_row_data(self):
        xlsx_pathname = r"../data/test_110.xlsx"
        # 打开xlsx文件
        workbook = xlrd.open_workbook(xlsx_pathname)
        # 根据sheetname获取内容
        sheet = workbook.sheet_by_name("110")
        # 获取总行/列数
        rownum = sheet.nrows
        colnum = sheet.ncols
        logs.debug(f"{sheet.name} sheet总行数:{rownum}")
        logs.debug(f"{sheet.name} sheet总行数:{colnum}")

        # 定义一个list
        content = {}
        # 按行读取数据
        for i in range(rownum):
            if i != 0:
                row_key = sheet.row_values(0)
                row_value = sheet.row_values(i)
                # logs.debug(row_key)
                # logs.debug(row_value)
                length = len(row_key)
                for j in range(length):
                    if "[]" in row_key[j]:
                        content.update({str(row_key[j]).replace("[]", ""): ast.literal_eval(row_value[j])})
                    else:
                        content.update({row_key[j]: row_value[j]})

            logs.debug(content)

 

执行结果:

 

 

 

 

execl数据


 

 



这篇关于【Python】将.xlsx文件内容读取为json格式 (Execl转换为Json)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程