2017-10-19 71 views
0

我有以下數據結構,我想通過搜索特定值來提取給定的鍵:值對。用例:我需要從字典中提取u'LOB_B':u'mcsmsg.example.net'。如何從字典中提取特定的鍵值對與嵌套的字典列表

{u'status': u'successful', 
u'availableFqdnList': [ 
    {u'LOB_A': u'pcload.us.example.net'}, 
    {u'LOB_B': u'mcsmsg.example.net'}, 
    {u'LOB_B': u'gtxd.example.net'}, 
    {u'LOB_B': u'diamond.example.net'}]} 

for key, value in my_dict.values(): 
    if value == 'mcsmsg.example.net': 
     print("Print key value pairs for available FQDN list") 
     print key, "=", value 

錯誤=爲關鍵,價值my_dict.values(): ValueError異常:值過多解壓

+1

您的字典是無效的方式。它不得包含重複的密鑰。 –

回答

0

舉個簡單的瞭解能完成這一操作

d = {u'status': u'successful', 
     u'availableFqdnList': [{u'LOB_A': u'pcload.us.example.net'}, 
           {u'LOB_B': u'mcsmsg.example.net'}, 
           {u'LOB_B': u'gtxd.example.net'}, 
           {u'LOB_B': u'diamond.example.net'}]} 

for val in d['availableFqdnList']: 
    if val.values()[0] == "mcsmsg.example.net": 
     print("%s=%s" %(val.keys()[0], val.values()[0])) 
+0

這工作完美。看到代碼後,Geeze看起來很簡單。謝謝! – user3613102

1

我不認爲值()是你想要的功能。

可能你想要items()來代替。

1

如果您正在使用python2,您可以使用iteritems()

或爲python3,這是items()

他們將ITER的字典你的關鍵,值。

dic = {'a':1,'b':2} 

for key,value in dic.items(): 
    print(key) 
    print(value) 

它將返回

a 
1 

b 
2 
相關問題