繁体   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