注:修改了原来的问题,以证明我正试图做什么
我有两个json对象列表,需要检查它们是否“相同”,例如。
x = [
{
"Id": "A",
"Type": "A",
"Component": "A",
"Level": "A",
"Debug": "A",
"Space": 1
},
{
"Id": "B",
"Type": "B",
"Component": "B",
"Level": "B",
"Debug": "B",
}
]
y = [
{
"Id": "B",
"Type": "B",
"Component": "B",
"Level": "B",
"Debug": "B",
},
{
"Id": "A",
"Type": "A",
"Component": "A",
"Level": "A",
"Debug": "A",
"Space": 1
}
]
为了达到我所做的目的,这些物体将被归类为相同的。
背景:我有一个api返回的数据,我无法控制。我需要检查返回的数据是否与我拥有的预存储定义相同。如果它是相同的,即两个列表包含相同数量的对象和包含相同键的对象,那么我需要返回
True
. 否则
False
. 注意字典中的键可以按不同的顺序排列。
到目前为止我所做的:
表演一个
json.dumps()
具有
sort_keys
集合。这似乎只是对顶级对象进行排序,而不是深入到子对象。
我也试过反对
y
将对象A移到对象B上方。然后执行
x == y
比较确实会回来
真
.
基于上述情况,看起来内置的相等运算符希望对象按相同的顺序排序。因此,我认为可以根据
Type
然后
Id
可能是前进的方向。这个
类型
字段确定对象是否包含
Space
属性,在某些对象中添加属性似乎表明排序很重要。
注1:性能并不重要。
注2:我不熟悉python,所以不确定从工具箱中使用哪个工具,或者是否有内置的工具。
谢谢。