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

news/2024/7/21 7:33:14 标签: python, json, excel

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

python">#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了

python">  #去除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('处理完成')

http://www.niftyadmin.cn/n/1500683.html

相关文章

[刷题]算法竞赛入门经典(第2版) 5-4/UVa10763 - Foreign Exchange

题意:有若干交换生、若干学校,有人希望从A校到B校,有的想从B到C、C到A等等等等。如果有人想从A到B也刚好有人想从B到A,那么可以交换(不允许一对多、多对一)。看作后如果有人找不到人交换,那么整…

接口自动化—获取接口返回的某个特定数据用jsonpath_rw

书写接口自动化,遇见接口有依赖关系,需要获取上个接口返回数据,在网上查找jsonpath_rw可以实现 安装:pip install jsonpath_rw 接下来是返回简书首页的第一个id值作为例子 #coding:utf-8 from jsonpath_rw import jsonpath,pars…

Android 中的接口回调

在Android中到处可见接口回调机制,尤其是UI事件处理方面。举一个最常见的例子button点击事件,button有一个点击方法onClick(),我们知道onclick()是一个回调方法,当用户点击button就执行这个方法。在源码中是这样定义的&#xff1a…

java 极光推送

Web.xml配置文件 <context-param> <param-name>contextConfigLocation</param-name> <param-value>/WEB-INF/classes/applicationContext.xml,/WEB-INF/classes/applicationContext-everydaytuisong.xml</param-value> </context-param> &…

接口自动化-判断两个json文件是否相等

写代码过程中判断两个文件是否相同&#xff0c;来给定测试结果&#xff0c;运用的是oprator.eq(a,res)。但是json文件内容过多&#xff0c;自己看起是相同&#xff0c;其实是由于自己粗心导致&#xff0c;这时候我们可以用以下代码来判断 #方法1for key in a.keys():if a[key] …

网上查了点关于windows注册表的知识,发现基本名词没理解好,于是整理这篇笔记(可能个别地方不准确,先这么理解吧),有了这个理解,再去看网上的文章,就差不读了...

打开注册表编辑器&#xff0c;左边窗格中显示的是“注册表项”&#xff0c;右边窗格中显示的是“注册表项的项值” 子项&#xff1a;子项是相对父项而言的&#xff0c;在某一个项&#xff08;父项&#xff09;下面出现的项&#xff08;子项&#xff09; 值项&#xff1a;一个项…

jquery中的ajax请求用法以及参数详情

url: 要求为String类型的参数&#xff0c;&#xff08;默认为当前页地址&#xff09;发送请求的地址。 type: 要求为String类型的参数&#xff0c;请求方式&#xff08;post或get&#xff09;默认为get。注意其他http请求方法&#xff0c;例如put和 delete也可以使用&#xff0…

CSS选择符、属性继承、优先级算法以及CSS3新增伪类、新特性

CSS 选择符有哪些&#xff1f;哪些属性可以继承&#xff1f;优先级算法如何计算&#xff1f; CSS3新增伪类有那些&#xff1f;CSS新增了哪些特性&#xff1f;下面我整理了一些&#xff0c;仅供参考。 CSS 选择符&#xff1a; 1) id选择器(# myid) 2) 类选择器(.mycla…