首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >根据值从嵌套字典中检索键,其中键名称未知

问根据值从嵌套字典中检索键,其中键名称未知
EN

Stack Overflow用户
提问于 2021-02-05 14:44:55
回答 4查看 73关注 0票数 0

我有以下结论:

代码语言:javascript
复制
{
  'foo': {
    'name': 'bar',
    'options': None,
    'type': 'qux'
  },
  'baz': {
    'name': 'grault',
    'options': None,
    'type': 'plugh'
  },
}

顶级键的名称在运行时是未知的。我不知道如何获取type的值为plugh的顶级键的名称。我尝试过各种迭代器、循环、理解等,但我对Python不是很在行。如有任何建议,我们将不胜感激。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2021-02-05 14:47:22

尝试遍历dict键并检查元素

代码语言:javascript
复制
for key in d:
    if(d[key]['type'] == 'plugh'):
        print(key)
代码语言:javascript
复制
baz
票数 1
EN

Stack Overflow用户

发布于 2021-02-05 14:47:09

试试这个:

代码语言:javascript
复制
for key, inner_dict in dict_.items():
    if inner_dict['type'] == 'plugh':
        print(key)

或者,如果您使用one liner来获取匹配条件的第一个键:

代码语言:javascript
复制
key = next(key for key, inner_dict in dict_.items() if inner_dict['type'] == 'plugh')
print(key)

输出:

代码语言:javascript
复制
baz
票数 2
EN

Stack Overflow用户

发布于 2021-02-05 14:50:13

你需要像这样迭代你的数据:

代码语言:javascript
复制
def top_level_key(search_key, data):
    for key, value in data.items():
        if value['type'] == search_key:
            return key

print(top_level_key('plugh', data_dict))
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66058787

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档