久久精品精选,精品九九视频,www久久只有这里有精品,亚洲熟女乱色综合一区
    分享

    Python實現遞歸解析json

     qweertt4747 2018-06-12

            在日常自動化測試中,json解析是經常要做的事情。但是有的json格式嵌套復雜,如果按照順序解析的方法,需要寫非常冗長的if判斷,有以下幾個缺點:1、無復用性:對于其他json格式或者當前格式稍微修改,就需要再寫一套;2、健壯性差:冗長的判斷極易寫錯。

            下面是一個原始json串和經過json解析工具(http://app.baidu.com/app/enter?appid=159018)處理的json串:

    {"b":{"a":[{"n1":"WIFI","lo":116.30744414106923,"t2":"1387873418.195T+08:00","t3":"target_首頁-海報視頻點擊","p1":"com.tudou.ui.activity.HomeActivity","n2":840,"la":39.98049465154441,"l":false},{"n1":"WIFI","lo":116.30744414106923,"t2":"1387873415.880T+08:00","t1":"A1005","s1":"5da19f89080af666bc2cb8d8775706df","p1":"com.tudou.ui.activity.HomeActivity"}]},"h":{"i":{"o2":"4.3","o1":"Android","b2":"Nexus 7","m":"10:bf:48:c2:81:f5","h":1205,"w":800,"u":"f835c7f8-c331-4b47-a6a3-772021544aa9","b1":"google"}}}

    {
    	"b":{
    		"a":[
    			{
    				"n1":"WIFI",
    				"lo":116.30744414106923,
    				"t2":"1387873418.195T+08:00",
    				"t3":"target_首頁-海報視頻點擊",
    				"p1":"com.tudou.ui.activity.HomeActivity",
    				"n2":840,
    				"la":39.98049465154441,
    				"l":false
    			},
    			{
    				"n1":"WIFI",
    				"lo":116.30744414106923,
    				"t2":"1387873415.880T+08:00",
    				"t1":"A1005",
    				"s1":"5da19f89080af666bc2cb8d8775706df",
    				"p1":"com.tudou.ui.activity.HomeActivity"
    			}
    		]
    	},
    	"h":{
    		"i":{
    			"o2":"4.3",
    			"o1":"Android",
    			"b2":"Nexus 7",
    			"m":"10:bf:48:c2:81:f5",
    			"h":1205,
    			"w":800,
    			"u":"f835c7f8-c331-4b47-a6a3-772021544aa9",
    			"b1":"google"
    		}
    	}
    }

            仔細分析下json格式,無外乎就是字典套列表,列表套字典,層層嵌套,可以用遞歸實現。

        def print_keyvalue_all(self,input_json):
            key_value=''
            if isinstance(input_json,dict):
                for key in input_json.keys():
                    key_value = input_json.get(key)
                    if isinstance(key_value,dict):
                        self.print_keyvalue_all(key_value)
                    elif isinstance(key_value,list):
                        for json_array in key_value:
                            self.print_keyvalue_all(json_array)
                    else:
                        print str(key)+" = "+str(key_value)
            elif isinstance(input_json,list):
                for input_json_array in input_json:
                    self.print_keyvalue_all(input_json_array)

            需要注意的是isinstance內置函數的使用,判斷當前對象是列表還是字典,非常簡潔。

            下面是輸出結果:

    u = f835c7f8-c331-4b47-a6a3-772021544aa9
    w = 800
    b2 = Nexus 7
    h = 1205
    m = 10:bf:48:c2:81:f5
    o2 = 4.3
    o1 = Android
    b1 = google
    p1 = com.tudou.ui.activity.HomeActivity
    lo = 116.307444141
    n1 = WIFI
    n2 = 840
    la = 39.9804946515
    t2 = 1387873418.195T+08:00
    t3 = target_首頁-海報視頻點擊
    l = False
    p1 = com.tudou.ui.activity.HomeActivity
    lo = 116.307444141
    s1 = 5da19f89080af666bc2cb8d8775706df
    t2 = 1387873415.880T+08:00
    t1 = A1005
    n1 = WIFI

            下面是給定key,輸出value的遞歸實現。

        def print_keyvalue_by_key(self,input_json,key):
            key_value=''
            if isinstance(input_json,dict):
                for json_result in input_json.values():
                    if key in input_json.keys():
                        key_value = input_json.get(key)
                    else:
                        self.print_keyvalue_by_key(json_result,key)
            elif isinstance(input_json,list):
                for json_array in input_json:
                    self.print_keyvalue_by_key(json_array,key)
            if key_value!='':
                print str(key)+" = "+str(key_value)


      本站是提供個人知識管理的網絡存儲空間,所有內容均由用戶發布,不代表本站觀點。請注意甄別內容中的聯系方式、誘導購買等信息,謹防詐騙。如發現有害或侵權內容,請點擊一鍵舉報。
      轉藏 分享 獻花(0

      0條評論

      發表

      請遵守用戶 評論公約

      類似文章 更多

      主站蜘蛛池模板: 国产精品毛片无码| 亚洲欧洲中文日韩久久AV乱码| 国内揄拍国内精品人妻| 英语老师解开裙子坐我腿中间| 福利在线视频一区二区| 国产高清色高清在线观看| 亚洲精品V天堂中文字幕| 在线 欧美 中文 亚洲 精品| 英语老师解开裙子坐我腿中间| 福利在线视频一区二区| 国产真实伦在线观看视频| 99精品国产综合久久久久五月天 | 深夜精品免费在线观看| 乱码精品一区二区三区 | 久天啪天天久久99久孕妇| 四川丰满少妇无套内谢| 久久99热只有频精品6狠狠| 国产中文字幕精品喷潮| 亚洲国产精品自产在线播放| 国产高清一区二区不卡| 美女乱子伦高潮在线观看完整片| 桃花岛亚洲成在人线AV| 亚洲熟妇AV一区二区三区漫画| 亚洲欧美日韩在线码| 精品成人乱色一区二区| 色噜噜噜亚洲男人的天堂| 无码日韩精品一区二区三区免费 | 久久月本道色综合久久| 亚洲AV中文无码乱人伦在线咪咕| 日本XXXX色视频在线观看免费不卡 | 无码AV免费永久免费永久专区| 欧美不卡无线在线一二三区观| 国产精品毛片无码| 免费人成黄页在线观看国产| 国产91午夜福利精品| 少妇真实被内射视频三四区| 免费人成视频在线观看网站| 国产午精品午夜福利757视频播放| 狠狠色噜噜狠狠狠狠AV| 国产成人AV性色在线影院| 日韩少妇人妻vs中文字幕|