py 中對介面資料的簡單分析處理
阿新 • • 發佈:2020-08-13
一般介面格式:返回的資料json字串{"code":"0","success":true,"data":xxxxxxxxx}
但對於某些介面返回的資料較多時,
格式:字典內巢狀列表,列表內再巢狀字典
因此,對於這類的介面資料,該怎麼進行簡單的處理呢?比如將其以items陣列形式,即key-value的形式打印出來,然後再去取想要的某一值。
例如:
data1 = { "code": "1", "success": True, "result": [ { "id": "1", "name": "qika", "code": "1","hasLink": "0", "parentId": "0", "children": [ { "id": "2", "name": "qikala", "code": "2", "hasLink": "1", "parentId": "1", "childrenId": "1"}, { "id": "3", "name": "qikastr", "code": "3","hasLink": "2", "parentId": "2", "childrenId": "2"} ] } ] }
處理方式:使用for迴圈,打印出json字串內的items,即以key-value形式展示:
for i in data1["result"]: for key,value in i.items(): print(key, ":", value)
結果:
但是檢視控制檯輸出,還存在一個value值為一個list形式的值。
那麼比如:我要指定獲取result-->children-->list內的巢狀的第一個字典內的name:qikala,
print(data1["result"][0]["children"][0]["name"])
可見正確獲取到了:
用for迴圈來遍歷獲取呢?
# print(data1["result"][0]["children"][0]["name"]) #指定打印出result->children->list內,巢狀的第一個字典內:name的值:qikala
#用for來遍歷 for i in data1["result"][0]["children"]: for key,value in i.items(): #遍歷打印出字典 if value == "qikala": #if判斷一下打印出的key-value當中是否存在有value為:qikala print("結果正確") #有的話返回結果正確,當然如果沒有,肯定就會報錯了 print(key, ":", value) #列印一下這個結果
結果: