百木园-与人分享,
就是让自己快乐。

【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数据


 

 


来源:https://www.cnblogs.com/phoenixy/p/15960701.html
本站部分图文来源于网络,如有侵权请联系删除。

未经允许不得转载:百木园 » 【Python】将.xlsx文件内容读取为json格式 (Execl转换为Json)

相关推荐

  • 暂无文章