最近在用python寫接口的測(cè)試程序,期間用到解析字典獲取某個(gè)key的value,由于多個(gè)接口返回的字典格式不是固定的并存在多層嵌套的情況。在字典的方法中也沒有找到可直接達(dá)到目的的方法(也可能是我對(duì)字典的方法了解的不深的緣故),于是自己寫了個(gè)程序。
創(chuàng)新互聯(lián)堅(jiān)持“要么做到,要么別承諾”的工作理念,服務(wù)領(lǐng)域包括:網(wǎng)站設(shè)計(jì)制作、成都網(wǎng)站設(shè)計(jì)、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣等服務(wù),滿足客戶于互聯(lián)網(wǎng)時(shí)代的澤庫網(wǎng)站設(shè)計(jì)、移動(dòng)媒體設(shè)計(jì)的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡(luò)建設(shè)合作伙伴!下面是代碼
#coding: utf-8 import types #獲取字典中的objkey對(duì)應(yīng)的值,適用于字典嵌套 #dict:字典 #objkey:目標(biāo)key #default:找不到時(shí)返回的默認(rèn)值 def dict_get(dict, objkey, default): tmp = dict for k,v in tmp.items(): if k == objkey: return v else: if type(v) is types.DictType: ret = dict_get(v, objkey, default) if ret is not default: return ret return default #如 dicttest={"result":{"code":"110002","msg":"設(shè)備設(shè)備序列號(hào)或驗(yàn)證碼錯(cuò)誤"}} ret=dict_get(dicttest, 'msg', None) print(ret)