def isEqual(para1, para2):
returnInfo = {"result": True, "info": ""}
if isinstance(para1, dict) and isinstance(para2, dict):
len1 = len(para1.keys())
len2 = len(para2.keys())
if len1 != len2:
returnInfo["result"] = False
returnInfo["info"] = "'s len1 = " + str(len1) + ", " + "len2 = " + str(len2)
return returnInfo
for key in para1:
if key not in para2:
returnInfo["result"] = False
returnInfo["info"] = "['" + key +"']"+ " not found in para2" + str(para2.keys())
return returnInfo
else:
value1 = para1[key]
value2 = para2[key]
returnInfoSub = isEqual(value1, value2)
returnInfo["result"] = returnInfo["result"] and returnInfoSub["result"]
if returnInfoSub["result"] == False:
returnInfo["info"] = "['" + key + "']" + returnInfoSub["info"]
return returnInfo
elif isinstance(para1, list) and isinstance(para2, list):
len1 = len(para1)
len2 = len(para2)
if len1 != len2:
returnInfo["result"] = False
returnInfo["info"] = "'s len1 = "+ str(len1) + ", " + "len2 = " + str(len2)
return returnInfo
for i in range(len1):
value1 = para1[i]
value2 = para2[i]
returnInfoSub = isEqual(value1, value2)
returnInfo["result"] = returnInfo["result"] and returnInfoSub["result"]
if returnInfoSub["result"] == False:
returnInfo["info"] = "[" + str(i) + "]" + returnInfoSub["info"]
return returnInfo
else:
returnInfo["result"] = (para1 == para2)
if returnInfo["result"] == False:
returnInfo["info"] = ":" + str(para1) + " not equal " + str(para2)
return returnInfo
return returnInfo