python - 从 python 列表中删除重复的 JSON 对象

标签 python json list dictionary generator

我有一个字典列表,其中某个特定值重复多次,我想删除重复值。

我的 list :

te = [
      {
        "Name": "Bala",
        "phone": "None"
      },
      {
        "Name": "Bala",
        "phone": "None"
      },
      {
        "Name": "Bala",
        "phone": "None"
      },
      {
        "Name": "Bala",
        "phone": "None"
      }
    ]

删除重复值的函数:

def removeduplicate(it):
    seen = set()
    for x in it:
        if x not in seen:
            yield x
            seen.add(x)

当我调用这个函数时,我得到了generator object

<generator object removeduplicate at 0x0170B6E8>

当我尝试遍历生成器时,我得到了 TypeError: unhashable type: 'dict'

有没有办法删除重复值或遍历生成器

最佳答案

您可以通过字典理解轻松删除重复键,因为字典不允许重复键,如下所示-

te = [
      {
        "Name": "Bala",
        "phone": "None"
      },
      {
        "Name": "Bala",
        "phone": "None"
      },
      {
        "Name": "Bala",
        "phone": "None"
      },
      {
        "Name": "Bala",
        "phone": "None"
      },
      {
          "Name": "Bala1",
          "phone": "None"
      }      
    ]

unique = { each['Name'] : each for each in te }.values()

print unique

输出-

[{'phone': 'None', 'Name': 'Bala1'}, {'phone': 'None', 'Name': 'Bala'}]

关于python - 从 python 列表中删除重复的 JSON 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33955225/

相关文章:

python - Django:标签中的For循环显示不同的信息

python - 本地 HTML 文件无法正确加载到 Dash 应用程序中

javascript - 我已经在 python 中创建了一个列表,但是如何在 javascript 中迭代这个列表?

python - 修改列表中的数据框不起作用

html - 如何在悬停时隐藏导航中的分隔线?

python - 关于带有掩码的 OpenCV GrabCut 分割上的标签?

json - 如何将选项传递给Rundeck作业Webhook URL

json - 松弛API chat.update返回 'not_authed'错误

python - 从列表 append 索引无法正常工作

python - 如何让python程序使用不同的安装方式