小编chr*_*mar的帖子

是否可以在不知道密钥的情况下排除 deepdiff 中的 dict 路径

我有 2 个字典,我想了解它们的差异。为此,我使用了非常好的deepDiff 模块。可以添加参数“exclude_paths”,但问题是我想排除一个我不知道的路径,因为我的字典太大了。

喜欢:

root['thiskeyiknow']['idontknowthiskey']['idontknowthiskey']['iknowthiskey']
Run Code Online (Sandbox Code Playgroud)

那么有没有办法排除所有这样的路径:

root['thiskeyiknow']['everykeyispossiblehere']['everykeyispossiblehere']['thiskeyshouldbeexcluded']
Run Code Online (Sandbox Code Playgroud)

在 unix 中,它会是 * 表示一切……python 中有什么东西说:“这里可以放任何东西吗?”

我已经尝试过这样的事情:

root['key1']['']['']['keyiwanttoexclude']
Run Code Online (Sandbox Code Playgroud)

但它没有用。

所以如果我有这样的字典:

dict1 = {"key1":{key2:{key3:{key4: "bla"}}}}
dict2 = {"key1":{key2:{key3:{key4: "fasl"}}}}


excludePaths = [

    "root['key1'][all][all]['key4']"

]

diff = deepdiff.DeepDiff(dict1,dict2,exclude_paths=excludePaths)
Run Code Online (Sandbox Code Playgroud)

输出应该是:

{}
Run Code Online (Sandbox Code Playgroud)

输出不应该是:

{" root['key1']['key2']['key3']['key4']" : {

'new_value' = 'bla'
'old_value' = 'fasl'

}
Run Code Online (Sandbox Code Playgroud)

python dictionary python-3.x

2
推荐指数
1
解决办法
1610
查看次数

标签 统计

dictionary ×1

python ×1

python-3.x ×1