import json def delUseless(jsonData,list1,list2,list3): # jsonData = '{"opAction":"add","refuseCode":true,"returnData":0,"objectList":{"objectType":"ip","objectSubType":"endpoint","isValid":1,"isInitialize":0,"isExclusion":0,"objectName":"abcd","objectDesc":"","subObjectIds":[],"addItemList":[{"ip":"1.1.1.1","ipIf":false,"portIf":false,"port":"0-65535","itemId":"","clientIp1":"1.1.1.1","clientIp2":"1.1.1.1","clientPort1":"","clientPort2":"","clientIpFormat":"range","clientPortFormat":"range","addrType":4,"direction":0,"temporaryItemId":1618221249}],"updateItemList":[],"deleteItemIds":[],"iconColor":"#31739C"}}' #如果传进来一个json的话,可能会由于截断,把数据中的大括号截掉一个,改正方法是在数据中的" "外加转义符,example见jsonData #jsonData = '{ "code" : 200, "msg" : "Success", "data" : { "objectList" : [ { "addItemList" : [ { "addrType" : 4, "clientIp1" : "3.3.3.3", "clientIp2" : "32", "clientIpFormat" : "CIDR", "clientPort1" : "0", "clientPort2" : "65535", "clientPortFormat" : "range", "direction" : 0, "ip" : "3.3.3.3", "isInitialize" : 0, "isSession" : "endpoint", "isValid" : 1, "itemDesc" : "{ \\"ip\\":\\"3.3.3.3\\" ,\\"port\\":\\"0-65535\\"}", "itemId" : 3719111, "itemName" : null, "itemType" : "ip", "objectId" : 23471, "opTime" : "2021-04-13 15:40:36", "opUser" : 1527, "port" : "0-65535", "protocol" : 0, "serverIp1" : "0.0.0.0", "serverIp2" : "255.255.255.255", "serverIpFormat" : "mask", "serverPort1" : "0", "serverPort2" : "65535", "serverPortFormat" : "mask" }, { "addrType" : 4, "clientIp1" : "4.4.4.4", "clientIp2" : "32", "clientIpFormat" : "CIDR", "clientPort1" : "0", "clientPort2" : "65535", "clientPortFormat" : "range", "direction" : 0, "ip" : "4.4.4.4", "isInitialize" : 0, "isSession" : "endpoint", "isValid" : 1, "itemDesc" : "{ \\"ip\\":\\"4.4.4.4\\" ,\\"port\\":\\"0-65535\\"}", "itemId" : 3719112, "itemName" : null, "itemType" : "ip", "objectId" : 23471, "opTime" : "2021-04-13 15:40:36", "opUser" : 1527, "port" : "0-65535", "protocol" : 0, "serverIp1" : "0.0.0.0", "serverIp2" : "255.255.255.255", "serverIpFormat" : "mask", "serverPort1" : "0", "serverPort2" : "65535", "serverPortFormat" : "mask" }, { "addrType" : 4, "clientIp1" : "5.5.5.5", "clientIp2" : "32", "clientIpFormat" : "CIDR", "clientPort1" : "0", "clientPort2" : "65535", "clientPortFormat" : "range", "direction" : 0, "ip" : "5.5.5.5", "isInitialize" : 0, "isSession" : "endpoint", "isValid" : 1, "itemDesc" : "{ \\"ip\\":\\"5.5.5.5\\" ,\\"port\\":\\"0-65535\\"}", "itemId" : 3719113, "itemName" : null, "itemType" : "ip", "objectId" : 23471, "opTime" : "2021-04-13 15:40:36", "opUser" : 1527, "port" : "0-65535", "protocol" : 0, "serverIp1" : "0.0.0.0", "serverIp2" : "255.255.255.255", "serverIpFormat" : "mask", "serverPort1" : "0", "serverPort2" : "65535", "serverPortFormat" : "mask" } ], "deleteItemIds" : [ ], "iconColor" : "#31739C", "isDisplay" : null, "isExclusion" : 0, "isInitialize" : 0, "isValid" : 1, "memberType" : 1, "objectDesc" : "", "objectId" : 23471, "objectName" : "testjson2", "objectSubType" : "endpoint", "objectType" : "ip", "opTime" : "2021-04-13 15:40:36", "opUser" : 1527, "subObjectIds" : [ ], "updateItemList" : [ ] } ] }, "success" : true }' print(type(jsonData)) if type(jsonData) == str: dictData = json.loads(jsonData) print(dictData) print(type(dictData)) else: pass if "data" in dictData.keys(): dictData = dictData["data"] else: pass #list1 = ["opAction","refuseCode","returnData","code","msg","success"] for i in list1: if i in dictData.keys(): del dictData[i] else: pass print(dictData) #list2 = ["isDisplay","memberType","objectId","opTime","opUser"] # #list3 = ["ipIf","portIf","itemId","clientIp2","clientIpFormat","clientPort1","clientPort2","isInitialize","isSession","isValid", # "itemDesc","itemId","itemType","objectId","opTime","opUser","protocol","serverIp1","serverIp2","serverIpFormat","serverPort1","serverPort2","serverPortFormat"] for i in list2: # objectList = dictData["objectList"] print(type(dictData["objectList"])) if(type(dictData["objectList"]))==list: len1 = len(dictData["objectList"]) for j in range(len1): # if i in dictData["objectList"][j].keys(): # del dictData[i] print(dictData["objectList"][j].get(i)) if dictData["objectList"][j].get(i) is None: print(i) dictData["objectList"][j][i] = 'heihei' else: pass print(type(dictData["objectList"][j])) print(dictData["objectList"][j]) if i in dictData["objectList"][j].keys(): del dictData["objectList"][j][i] else: pass dictData2 = dictData["objectList"][j]["addItemList"] len2 = len(dictData2) for k in list3: # if dictData2["itemName"] is None: # dictData["objectList"][j]["addItemList"]["itemName"] = "safsaf" # else: # pass for addItem in range(len2): if dictData2[addItem].get(k) is None: dictData["objectList"][j]["addItemList"][addItem][k] = 'hahaha' else: pass if k in dictData["objectList"][j]["addItemList"][addItem].keys(): del dictData["objectList"][j]["addItemList"][addItem][k] else: pass elif(type(dictData["objectList"]))==dict: del dictData["objectList"][i] dictData3 = dictData["objectList"]["addItemList"] len3 = len(dictData3) for k2 in list3: for addItem2 in range(len3): if dictData3[addItem2].get(k2) is None: dictData["objectList"]["addItemList"][addItem2][k2] = 'huhuhu' else: pass if k2 in dictData["objectList"]["addItemList"][addItem2].keys(): del dictData["objectList"]["addItemList"][addItem2][k2] else: pass else: print('传入数据不属于当前可被处理的格式') return dictData print(dictData)