@@ -1,91 +1,45 @@
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 ) )
def dict_del ( key , obj ) :
if isinstance ( obj , dict ) :
if key in obj :
obj . pop ( key )
#print(obj.items() )
for k , v in obj . items ( ) :
#print(obj.items() )
if v is None :
v = ' 666 '
else :
pass
dict_del ( key , v )
elif isinstance ( obj , list ) :
for x in obj :
dict_del ( key , x )
else :
pass
if " data " in dictData . keys ( ) :
dictData = dictData [ " data " ]
#print(type(obj))
obj = json . dumps ( obj )
return obj
def deal ( jsondata , keylist ) :
jsondata = json . loads ( jsondata )
if " data " in jsondata . keys ( ) :
jsondata = jsondata [ " 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 )
# jsondata = '{ "opAction":"add" ,"refuseCode":true ,"returnData":1,"objectList":{"objectType":"fqdn","objectSubType":"fqdn","isValid":1,"isInitialize":0,"isExclusion":0,"objectName":"hbn_test_fqdn","objectDesc":"","subObjectIds":[],"addItemList":[{"keywordArray":["*abcds"],"t":"16191477536650","itemId":"","isHexbin":0,"state":2}],"updateItemList":[],"deleteItemIds":[],"iconColor":"#31739C"}}'
# keylist = ["objectType","objectSubType","isValid","isInitialize"]
# len2 = len(keylist)
# print("aaaaaaaaaaaaaaaaaaaaaaaaaa"+str(len2))
# for num in range(len2) :
# retstr = dict_del(keylist[num], jsondata)
# print("#############################"+retstr )
# return retstr
#for num in range(len2):
#print("$$$$$$$$$$$$$$$$$$"+dict_del(keylist[num],jsondata))
#key1 = keylist[num ]
#print(num)
#print("#############################"+dict_del(key1,jsondata))
len1 = len ( keylist )
for num in range ( len1 ) :
retstr = dict_del ( keylist [ num ] , jsondata )
dict_del ( keylist [ num ] , jsondata )
return retstr