Python3字典将嵌套字典与numpy数组进行比较



我想比较python中的字典。我知道我可以简单地做a == b,如果ab是字典的话。这也适用于嵌套字典,其中a和b包含字典本身。但是,如果a和b包含大于1:的numpy数组,则不起作用

import numpy as np
a = {"1": np.array([1, 2])}
b = {"1": np.array([1, 2])}
a == b

我得到这个错误:

Traceback(上次调用(:
ValueError中的文件",第1行:具有多个元素的数组的真值不明确。使用.any((或.all((

我确实检查了:这篇文章,发现了来自sumbudu的import deepdiff的建议,这正是我想要的。然而,有没有一种更简单的方法可以使用==并以某种方式捕捉错误?

这样?

def equal_dictionaries(dic1, dic2):
for key, value in dic1.items():
key1 = key
value1 = value
for key, value in dic2.items():
key2 = key
value2 = value
if np.array_equal(value1, value2) == False or key1 != key2:
return False
else:
return True

相关内容

  • 没有找到相关文章

最新更新