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

时间:2017-04-18 23:11:38

标签: python json 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'])

这应该有用吗?这样做有好处吗?

2 个答案:

答案 0 :(得分:2)

不完全:

  1. in 包含在序列中,例如字符串或列表。您正在比较整数值,因此您需要一个简单的 ==
  2. 你给定的结构是不合法的Python:你在几个你想要字典的地方都有括号;你需要大括号。
  3. 否则,你做得很好......但你应该问我们它是否会起作用:通过运行代码来询问Python解释器。

    试试这个结构:

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

答案 1 :(得分:0)

只要结构一致,你就可以使用类似的东西遍历@Prune的字典。

then