json字串比較,測試常用需求,整理了一下**,全部比較完成後,輸出比較結果。
說明:1、對於json格式,先轉為python dict;對於python dict,直接比較。
2、比較方式採用遞迴演算法。
3、對於介面返回json串,一般不太大,這裡全部比較完再返回,確保拿到全部比較結果。
#!/usr/bin/env python
# -*-coding:utf-8-*-
class comm_tools:
def __init__(self):
pass
def cmp_dict(self,src_data, dst_data,ret_result):
if isinstance (src_data, dict):
"""若為dict格式"""
for key in dst_data:
if key not in src_data:
result="src不存在這個key:%s" % (key)
for key in src_data:
if key in dst_data:
"""遞迴"""
self.cmp_dict (src_data[key], dst_data[key],ret_result)
else:
result="dst不存在這個key:%s" % (key)
elif isinstance (src_data, list):
"""若為list格式"""
if len (src_data) != len (dst_data):
print("list len: '{}' != '{}'".format (len (src_data), len (dst_data)))
for src_list, dst_list in zip (sorted (src_data), sorted (dst_data)):
"""遞迴"""
self.cmp_dict (src_list, dst_list,ret_result)
else:
if str (src_data) != str (dst_data):
result="字串核對不通過,兩個值分別為:src_data is:%s,dst_data is:%s" %( str(src_data),str(dst_data))
if ret_result:
return false,ret_result
else:
return true,ret_result
if __name__ == '__main__':
tool = comm_tools ()
src_data=}
dst_data=}
#dst_data=}
check_detail=
check_result,check_detail= tool.cmp_dict(src_data,dst_data,check_detail)
if check_result:
print "核對通過"
else:
print "核對不通過,結果為:"
for r in check_detail:
print r
JSON字串解析
一 json物件 js可以按以下方式定義物件 varobj 這樣就定義了物件 obj,它有兩個公共屬性id和name,可以用 obj.id 的方式直接訪問其屬性值。從伺服器獲取資料時往往不止乙個物件,這就需要用到物件陣列,js中物件陣列可以用 來定義,如下 varobjs alert objs 0 ...
生成JSON字串
假設現在要建立這樣乙個json文字 物件 married false 布林值 try 是建立乙個物件 jsonobject person new jsonobject 第乙個鍵phone的值是陣列,所以需要建立陣列物件 jsonarray phone new jsonarray phone.put ...
拼接JSON字串
傳輸資料時經常要用到json格式,拼接json字串是常用的事,這裡記錄一下,直接看 吧。mapan localhost unixnetwork cat test.cpp include includevoid func char test1,char test2,char test3 test1,t...