将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
本站部分图文来源于网络,如有侵权请联系删除。