''' 1、上课的代码全部敲一遍(不要求提交) 2、有一组数据,如下格式: [ {'case_id': 1, 'method': 'post', 'url': '/member/login', 'data': '123', 'actual': '不通过','excepted': '通过'}, {'case_id': 2, 'method': 'post', 'url': '/member/login', 'data': '123','actual': '通过', 'excepted': '通过'}, {'case_id': 3, 'method': 'post', 'url': '/member/login', 'data': '123', 'actual': '不通过','excepted': '通过'}, {'case_id': 4, 'method': 'post', 'url': '/member/login', 'data': '123','actual': '通过', 'excepted': '通过'}, {'case_id': 4, 'method': 'post', 'url': '/member/login', 'data': '123', 'actual': '不通过','excepted': '通过'}, {'case_id': 5, 'method': 'post', 'url': '/member/login', 'data': '123','actual': '通过', 'excepted': '通过'}, ] 请列表中的每个字典遍历出来,每个字典的数据用一个对象来保存, 要求:使用上次作业的测试用例类的实例对象来保存每个字典中的数据 字典中的key对应属性名,value为属性值。(不使用setattr) 最后把所有的测试用例对象,放入一个列表中,得到如下如格式的数据: [用例对象,用例对象,用例对象...] 3、定义一个如下的类 class CaseData: pass 将第二题中给的数据使用classData类通过setattr(反射机制),保存为第二题要求的格式 ''' # 第二题 class Cases(): """用例类""" def __init__(self, case_id, url, data, method, excepted, actual): self.case_id = case_id self.url = url self.data = data self.method = method self.excepted = excepted self.actual = actual # 请列表中的每个字典遍历出来,每个字典的数据用一个对象来保存 data = [ {'case_id': 1, 'method': 'post', 'url': '/member/login', 'data': '123', 'actual': '不通过','excepted': '通过'}, {'case_id': 2, 'method': 'post', 'url': '/member/login', 'data': '123','actual': '通过', 'excepted': '通过'}, {'case_id': 3, 'method': 'post', 'url': '/member/login', 'data': '123', 'actual': '不通过','excepted': '通过'}, {'case_id': 4, 'method': 'post', 'url': '/member/login', 'data': '123','actual': '通过', 'excepted': '通过'}, {'case_id': 4, 'method': 'post', 'url': '/member/login', 'data': '123', 'actual': '不通过','excepted': '通过'}, {'case_id': 5, 'method': 'post', 'url': '/member/login', 'data': '123','actual': '通过', 'excepted': '通过'}, ] # 方式一 def work2_2(data): new_data = [] for dic in data: # 通过位置传参 case = Cases(dic["case_id"],dic["url"],dic["data"],dic["method"],dic["excepted"],dic["actual"]) new_data.append(case) return new_data work2_2(data) # 方式二: def work2_3(data): # 创建一个新列表 new_data = [] # 遍历列表 for dic in data: # 创建一个对象,将遍历得到的数据传入到类的init方法中,进行初始化(属性设置) case = Cases(**dic) # 此处使用**对字典进行解包 # 将创建出来的对象,放入新列表 new_data.append(case) return new_data work2_3(data) # res = work2_3(data) # print(res) # 第三题 class CaseData(): pass # 方式一 def work3_1(data): # 创建一个新列表 new_data = [] # 遍历列表 for i in data: # 创建一个对象 case = CaseData() # 遍历出当前字典的所有数据 for k,v in i.items(): # 将遍历出来的数据设置为对象的属性 setattr(case,k,v) # 将设置好属性的对象,加入到列表中 new_data.append(case) return new_data work3_1(data) # res = work3_1(data) # print(res)