json 对象列表的唯一值

Unique values of list of json objects

我有一长串 json 个对象,其中很多都是重复的。那些重复的对于相同的键具有完全相同的值。例如在下面的列表中

[{ "name": "John", "id": 1},{ "name": "Carl", "id": 5},{ "name": "John", "id": 1}]

我想获取独特的对象

[{ "name": "John", "id": 1},{ "name": "Carl", "id": 5}]

我尝试使用函数 set() 但显然它不适用于类型为:dict 的元素。

有什么有效的方法吗?

提前致谢

在将它们添加到您的集合之前尝试散列字典。为此,只需将字典转换为字符串即可。

d1 = { "name": "John", "id": 1}
d2 = { "name": "Carl", "id": 5}
d3 = { "name": "John", "id": 1}
s = set()

for d in [d1,d2,d3]:
    if str(d) not in s:
        s.add(str(d))