json数据
{"data":
[
{"id":195,"projectName":"22","sliceName":"","selectAll":true,
"analysisColumn":
[
{"id":"115484651778347008","fieldName":"d_h7_ltf","isReady":true,"errorCount":2,"fieldType":"NUMERIC"}
]
},
{"id":174,"projectName":"111","sliceName":"","selectAll":true,
"analysisColumn":
[
{"id":"105352848560230400","fieldName":"r2b_isphi2_ref","isReady":true,"errorCount":1,"fieldType":"NUMERIC"},
{"id":"105352848560230401","fieldName":"actual_pass_counter","isReady":true,"errorCount":2,"fieldType":"NUMERIC"},
{"id":"105352848560230402","fieldName":"r2_exit_rt_speed","isReady":true,"errorCount":1,"fieldType":"NUMERIC"}
]
}
],
"success":true,"requestId":null,"resultCode":null,"resultMsg":null,"solution":null
}
操作json文件代码
#coding:utf-8
import json
import requests
import operator
import getcwd
from logs.get_log import get_log
#读取json文件数据
class OperationJson:
def __init__(self,file_path=None):
self.path = getcwd.get_cwd()
if file_path==None:
self.file_path='../dataconfig/rigang_data/request_monitor_add.json'
else:
self.file_path = file_path
self.data=self.read_data(self.file_path)
#读取请求数据json文件
def read_data(self,path):
with open(path,'r') as fp:
#load将str转成dict,用于读取json文件,dumps()反之用法
# print("fp", fp, "type(fp) is:", type(fp))
data=json.load(fp)
# self.log_msg.info('请求数据json文件内容:%s'%data)
return data
#根据关键字获取请求数据
def get_data(self,id):
# self.log_msg.info('根据关键字获取请求数据json文件内容:%s' % id)
return self.data[id]
# 获取期望结果json数据
def get_json_data(self,json_path,id=None):
json_data=None
if id==None:
json_data = self.read_data(json_path)
# self.log_msg.info('获取期望结果id为空,返回的所有数据是%s' % json_data)
return json_data
else:
json_data=self.read_data(json_path)
json_data=json_data[id]
# self.log_msg.info('获取期望结果id为:%s,返回数据是%s' % (id,json_data))
return json_data
#获取实际结果写入实际结果json
def write_data(self,data,json_path):
with open(json_path,'w',encoding='utf-8') as fp:
rdata=fp.write(json.dumps((data),ensure_ascii=False,indent=2))
# self.log_msg.info('获取的实际结果数据是:%s,写入的文件是:%s' % (data, json_path))
#根据key,value值找到json对应数组:-针对曲线分析接口测试-添加,删除依赖接口
def find_list_dict(self,key,value,list_key,json_path):
json_data=self.read_data(json_path)
datas=json_data[list_key]
i=None
#遍历数组
for i in range(0,len(datas)):
# 取每个数组为字典,定义为迭代器
items=datas[i].items()
#遍历字典
for k,v in items:
#判断是你需要的key,value值
if k==key and v==value:
# print(datas[i])
return datas[i]
#获取需要使用的values,key_r:需要得到的值; list_key:json数据根据对应的key值list_key获取的该key数组; key,value:根据这个判断获取最终值数组的位置; json_path:json的路径
def find_list_dict_for_value(self,key_r,list_key,key,value,json_path):
data=self.find_list_dict(key,value,list_key,json_path,)
return data[key_r]
if __name__ == '__main__':
op=OperationJson()
a=op.find_list_dict_for_value('id','data','projectName','111','../dataconfig/checker_data/actual_checker_getSimpleList.json')
print(a)
运行结果