繁体   English   中英

查找字典是否包含在另一个字典中(新版本)

[英]find if a dict is contained in another (new version)

我正在寻找一种方法来检查另一个字典中是否包含字典:

big = {"result": {"code": "1000", "msg" : "oh yeah"} }
small = {"result": {"code": "1000"}}

test(small, big) # should be True ( small <= big )

由于“结果”的键/对是另一个指令,因此stackoverflow中的先前答案在FAIL下 ,并且不能解决问题(它们仅适用于较简单的指令)。 同样,该值可以是列表。 我想要通用JSON模型中的答案。

Python:检查一个字典是否是另一个较大字典的子集

测试字典中是否包含字典

由于您似乎是在递归地定义“包含在”中,即,如果较小的dict中的每个键都存在于较大的字典中,并且它们的值相同或较小的值“包含在”较大的字典中,则该字典包含在另一个字典中-递归是解决问题的明显选择。

尝试这样的事情:

def is_subset(small, large):
    if isinstance(small, dict) and isinstance(large, dict):
        for key in small.keys():
            if not key in large:
                return False
            elif not is_subset(small[key], large[key]):
                return False
        return True
    elif isinstance(small, list) and isinstance(large, list):
        for s_item in small:
            if not any(is_subset(s_item, l_item) for l_item in large):
                return False
        return True
    else:
        return small == large

暂无
暂无

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

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