【问题标题】:Unique values of list of json objectsjson对象列表的唯一值
【发布时间】:2017-10-26 14:40:42
【问题描述】:

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

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

我想得到唯一的对象

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

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

有什么有效的方法吗?

提前致谢

【问题讨论】:

标签: python json unique


【解决方案1】:

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

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))

【讨论】:

  • 谢谢,但我在 s.add(d) TypeError: unhashable type: 'dict' 中收到以下错误
  • 我的错,应该是s.add(str(d))
  • 不客气!如果您觉得有帮助,请不要忘记将此答案标记为已选择。
猜你喜欢
  • 1970-01-01
  • 2017-09-07
  • 1970-01-01
  • 2016-03-09
  • 1970-01-01
  • 2022-01-06
  • 1970-01-01
  • 1970-01-01
  • 2022-06-22
相关资源
最近更新 更多