接口自动化—获取excel并写入json文件

获取excel数据写入json文件,由于excel写入的格式会影响请求数据,建议最好要用json数据作为请求数据,直接在json文件写入数据,可能会节约时间成本并提高请求数据的正确性

#coding:utf-8
import operator
import json
import xlrd
from utile.operation_excel import OperationExcel
class To_json:
    def __init__(self,json_path):
        self.opexcel=OperationExcel()
        self.json_path=json_path
    #读取excel文件
    def read_excel_data(self):
        self.opexcel.clear_blank_space()
        data=[]
        #获取sheet行数,这里的方法是自己封装的方法,详见操作excel封装方法博客文章
        nrows=self.opexcel.get_lines()
        print(self.opexcel.get_data())
        #获取sheet第一行的列名
        for i in range(1,nrows):
            #每一行数据形成一个列表
            values=self.opexcel.get_row_values(i)
            # print('---2---')
            print(type(values))
            print(values)
            #列表形成字典
            data.append({'line_id':values[0],
                         'detect_date':values[1],
                         'coil_id':values[2],
                         'coil_id_input_status': values[3],
                         'coil_id_recognized':values[4],
                         'coil_id_correct': values[5],
                         'coil_id_camera_status': values[6],
                         'coil_id_images':values[7],
                         'coil_side_cracking': values[8],
                         'coil_side_cracking_camera_status': values[9],
                         'coil_side_cracking_images': values[10],
                         'coil_side_cracking_bbox': values[11],
                         'tower_shaped': values[12],
                         'tower_shaped_camera_status': values[13],
                         'tower_shaped_images': values[14],
                     })
        return data
    #写入json文件
    def write_to_json(self):
        with open(self.json_path,'w',encoding='utf-8')as f:
            f.write(json.dumps(self.read_excel_data(),ensure_ascii=False,indent=2))

if __name__ == '__main__':
    tojson=To_json('../dataconfig/data.json')
    tojson.write_to_json()

去除excel空格和空行,这里之前一直报错int没有strip属性,把old转换成字符类型就ok了

  #去除excel空格和空行
    def clear_blank_space(self):
        #加载文件
        wb=load_workbook(self.file_name)
        ws=wb.active
        for i in range(1,ws.max_row+1):
            for j in range(1,ws.max_column+1):
                old=str(ws.cell(i,j).value)
                if old is not None:
                    ws.cell(i, j).value = old.strip().replace(' ', '').replace("\n", "")
        wb.save(self.file_name)
        wb.close()
        print('处理完成')
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值