繁体   English   中英

检查给定值是否在嵌套字典中

[英]Check whether a given value is in a nested dictionary

我有这种结构,使用json.load(json)转换

jsonData = [ { 
thing: [
    name: 'a name',
    keys: [
        key1: 23123,
        key2: 83422
    ]
thing: [
    name: 'another name',
    keys: [
        key1: 67564,
        key2: 93453
    ]
etc....
} ]

我有key1check = 67564 ,我想检查事物的key1是否与此值匹配

if key1check in val['thing']['keys']['key1'] for val in jsonData:
    print ('key found, has name of: {}'.format(jsonData['thing']['name'])

应该行吗? 有更好的办法吗?

不完全的:

  1. in用于包含在序列中,例如字符串或列表。 您正在比较整数值,因此需要一个简单的==
  2. 您给定的结构不是合法的Python:在准备字典的几个地方都有方括号; 您需要大括号代替。

否则,你做得很好......但你应该问我们是否会工作:通过运行代码询问Python解释器。

为您的结构尝试以下操作:

jsonData = [ 
{ "thing": {
    "name": 'a name',
    "keys": {
        "key1": 23123,
        "key2": 83422
    } } },
{ "thing": {
    "name": 'another name',
    "keys": {
        "key1": 67564,
        "key2": 93453
    } } }
] 

只要结构是一致的,就可以使用类似的方法遍历@Prune的字典。

for item in jsonData:
    if item['thing']['keys']['key1'] == key1check:
        print("true")
    else:
        print("false")

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM