python - 使用数组检查深度嵌套的字典中的几乎等于(请阅读说明)
问题描述
假设我有两个嵌套的字典,里面有字典数组,我想检查这些值是否足够接近。== 不起作用,因为它不检查
扩展 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 方法以适用于嵌套的字典和数组?
解决方案
签出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) # {}
推荐阅读
- image - 就时间复杂度而言,将多个较小图像叠加到较大图像上的最有效方法是什么?
- python - 使用 google auth 库验证 JWT
- ruby-on-rails - 如何在联系表单中添加验证?
- ios - 按标准阻止呼叫 (CallKit)
- javascript - reactjs-popup 没有正确改变状态
- java - 来自一个队列的多个侦听器 RabbitMQ Spring
- delphi - SetThreadDesktop:ERROR_INVALID_HANDLE
- ruby - Ruby 邮件库 如何获取错误报告
- python - Python“如果不存在,那么……”逻辑?
- reporting-services - 封面页上的背景图像在 SSRS 中失真