从python列表中删除重复的JSON对象 [英] Remove duplicate JSON objects from list in python

查看:382
本文介绍了从python列表中删除重复的JSON对象的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述



我的列表:

我的列表中有一个特殊值重复多次的列表,我想删除重复的值。

  te = [
{
Name:Bala,
phone:None
},
{
名称:Bala,
电话:无
},
{
名字:巴拉,
电话:无
},
{
名称:巴拉,
手机 无
}
]

删除重复值的功能: p>

  def removeduplicate(it):
seen = set()
for x:
如果x没有看到:
yield x
seen.add(x)

当我调用这个函数时,我得到生成器对象

 生成器对象在0x0170B6E8上删除重复> 

当我尝试迭代生成器时,我得到 TypeError:unhashable type: 'dict'



有没有办法删除重复的值或迭代生成器

解决方案

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

  te = [
{
Name:Bala,
phone:None
},
{
Name:Bala,
phone:None
},
{
Name:Bala,
phone:None
},
{
Name:Bala,
phone:None
},
{
名称:Bala1,
phone:无
}
]

unique = {each [ '名称']:每个都在te中。}值()

打印唯一

输出 -

  [{'phone':'None' '名字':'Bala1'},{'phone':'无','名字':'Bala'}] 


I have a list of dict where a particular value is repeated multiple times, and I would like to remove the duplicate values.

My list:

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

function to remove duplicate values:

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

When I call this function I get generator object.

<generator object removeduplicate at 0x0170B6E8>

When I try to iterate over the generator I get TypeError: unhashable type: 'dict'

Is there a way to remove the duplicate values or to iterate over the generator

解决方案

You can easily remove duplicate keys by dictionary comprehension, since dictionary does not allow duplicate keys, as below-

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

Output-

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

这篇关于从python列表中删除重复的JSON对象的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆