簡體   English   中英

如何從具有嵌套字典列表的字典中提取特定鍵值對

[英]how to extract a specific key value pair from a dict with a nested list of dicts

我具有以下數據結構,通過該數據結構,我想通過搜索特定值來提取給定鍵:值對。 用例:我需要從字典中提取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:太多值無法解包

我不認為values()是您想要的功能。

可能您希望使用items()。

如果您使用的是python2,則可以使用iteritems()

或對於python3,它是items()

他們會為您迭代字典中的鍵和值。

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

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

它將返回

a
1

b
2

作為完成此操作的一種簡單易懂的方式

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]))

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM