From dff0aa20907494ab3f007adddec5d2997dd309d8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9C=B1=E6=98=8E=E6=98=8E?= Date: Tue, 26 May 2020 14:41:02 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E6=9B=BF=E6=8D=A2json?= =?UTF-8?q?=E5=86=85=E5=AE=B9=E5=85=B3=E9=94=AE=E5=AD=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- 04-CustomLibrary/Custometest/cmd_cer.py | 45 +++++++++++++++++++++++++ 1 file changed, 45 insertions(+) diff --git a/04-CustomLibrary/Custometest/cmd_cer.py b/04-CustomLibrary/Custometest/cmd_cer.py index 6b9dcdf..9617c73 100644 --- a/04-CustomLibrary/Custometest/cmd_cer.py +++ b/04-CustomLibrary/Custometest/cmd_cer.py @@ -136,6 +136,51 @@ class Order: os_name = platform.system() return os_name + #需要替换的内容进行循环替换 jsons为初始默认json datas为需要替换的内容 + # 全局变量 null,将java中的空值(null),装换位python中空值("") + global null + null = '' + + # 对需要替换的内容进行循环替换 jsons为初始默认json datas为需要替换的内容,header 启用自定义json + def Jsoneditmanu(self, jsons, datas=None,header=None): + #判断是否启用自定义json + if header != None: + header = eval(header) + # 返回 header + return header + # 判断是否需要更改json内容 + elif datas != None: + # datas = eval(datas) + jsons = eval(jsons) + # 循环遍历替换json内容 + for k, v in datas.items(): + Order.UpdateAllvalues(self,jsons, k, v) + return jsons + else: + # 返回初始json + return jsons + + # 循环嵌套替换 + def UpdateAllvalues(self,mydict, key, value): + if isinstance(mydict, dict): # 使用isinstance检测数据类型,如果是字典 + if key in mydict.keys(): # 替换字典第一层中所有key与传参一致的key + mydict[key] = value + for k in mydict.keys(): # 遍历字典的所有子层级,将子层级赋值为变量chdict,分别替换子层级第一层中所有key对应的value,最后在把替换后的子层级赋值给当前处理的key + chdict = mydict[k] + Order.UpdateAllvalues(self,chdict, key, value) + mydict[k] = chdict + elif isinstance(mydict, list): # 如是list + for element in mydict: # 遍历list元素,以下重复上面的操作 + if isinstance(element, dict): + if key in element.keys(): + element[key] = value + for k in element.keys(): + chdict = element[k] + Order.UpdateAllvalues(self,chdict, key, value) + element[k] = chdict + + + if __name__ == '__main__': datas = {"url":['https://www.baidu.com'], "Certificate":"Tango Secure Gateway CA",