删除json串中的无用值

This commit is contained in:
hebingning
2021-04-20 10:29:34 +08:00
parent 0e197e8c80
commit 20ddb5725b

View File

@@ -0,0 +1,91 @@
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)