python巢狀字典比較值與取值的實現示例

python巢狀字典比較值與取值的實現示例

前言

本文通過示例給大家介紹了python巢狀字典比較值,取值,分享出來供大家參考學習,下面話不多說了,來一起看看詳細的介紹吧。

示例程式碼


#取值import types
allGuests = {'Alice': {'apples': 5, 'pretzels': {'12':{'beijing':456}}},
'Bob': {'ham sandwiches': 3, 'apple': 2},
'Carol': {'cups': 3, 'apple pies': 1}}
def dictget(dict1,obj,default=None):
for k,v in dict1.items():
if k == obj:
print(v)
else:
if type(v) is dict:
re=dictget(v,obj)
if re is not default:
print(re)
dictget(allGuests,'beijing')

結果:

比較大小 


def bijiaodict(dict1,dict2):
for k,v in dict1.items():
for k2,v2 in dict2.items():
if k==k2 and v==v2:
print('dict1=dict2')
else:
print('dict1!=dict2')
dict1={'2':'6'}
dict2={2:{1:{1:8}}}
bijiaodict(dict1,dict2)

結果:

python字典巢狀字典的情況下獲取某個key的value

正好最近在用python寫介面的測試程式,期間用到解析字典獲取某個key的value,由於多個介面返回的字典格式不是固定的並存在多層巢狀的情況。在字典的方法中也沒有找到可直接達到目的的方法,於是自己寫了個程式。分享給大家:


#coding: utf-8
import types
#獲取字典中的objkey對應的值,適用於字典巢狀
#dict:字典
#objkey:目標key
#default:找不到時返回的預設值
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":"裝置裝置序列號或驗證碼錯誤"}}
ret=dict_get(dicttest, 'msg', None)
print(ret)

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,如果有疑問大家可以留言交流,謝謝大家對指令碼之家的支援。

您可能感興趣的文章:

python兩種遍歷字典(dict)的方法比較關於Python元祖,列表,字典,集合的比較Python合併兩個字典的常用方法與效率比較Python 字典(Dictionary)操作詳解Python中字典和JSON互轉操作例項Python中字典建立、遍歷、新增等實用操作技巧合集python中將字典轉換成其json字串python 將字串轉換成字典dictpython實現給字典新增條目的方法Python實現的字典值比較功能示例