首页 > 解决方案 > 使用数组检查深度嵌套的字典中的几乎等于(请阅读说明)

问题描述

假设我有两个嵌套的字典,里面有字典数组,我想检查这些值是否足够接近。== 不起作用,因为它不检查
扩展 ApproxMapping 类的数组值也不起作用

dict1 = {
'a': 1, 
'b': [
      {'c': [{'d': 32.069},{'e': 32.420}]}
     ]
}
dict2 = {
'a': 1, 
'b': [
      {'c': [{'d': 32.070},{'e': 32.421}]}
     ]
}

我如何检查它们几乎相等,无论如何我可以覆盖 pytest.approx 方法以适用于嵌套的字典和数组?

标签: pythondictionarypytest

解决方案


签出deepdiff图书馆:

from deepdiff import DeepDiff

dict1 = {
'a': 1, 
'b': [
      {'c': [{'d': 32.069},{'e': 32.420}]}
     ]
}
dict2 = {
'a': 1, 
'b': [
      {'c': [{'d': 32.070},{'e': 32.421}]}
     ]
}

diff = DeepDiff(dict1, dict2, significant_digits=2)
print(diff) # {}

推荐阅读