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))
我有一长串 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))