【发布时间】:2018-03-22 18:12:00
【问题描述】:
原帖 = Remove duplicates from json data
这只是我的第二篇文章。我没有足够的分数来评论我对原始帖子的问题......所以我在这里。
Andy Hayden 提出了一个很好的观点 - “而且,这些并不是真正的重复...... – Andy Hayden”
我的问题就是这种情况...如何从 json 文件中删除重复项,但通过匹配 json 文件中的多个键?
这是原始示例:(有人指出它不是有效的json)
{
{obj_id: 123,
location: {
x: 123,
y: 323,
},
{obj_id: 13,
location: {
x: 23,
y: 333,
},
{obj_id: 123,
location: {
x: 122,
y: 133,
},
}
我的情况与此示例非常相似,除了在我的情况下,它将保留所有这些,因为 obj_id 的 x 和 y 值是唯一的,但是如果 x 和 y 相同,则将从 json 文件中删除一个。
我发现的所有例子都只基于一个键匹配来踢出那些..
我不知道这是否重要,但我需要匹配的键是 "Company Name" 、 "First Name" 和 "Last Name" (它是公司和联系人的 100k 加行 json -有时同一个人是多家公司的联系人,这就是为什么我需要匹配多个键)
谢谢。
【问题讨论】:
-
字典中的所有键都必须是唯一的,因此
json.load()或json.loads()无法返回具有重复键值的键。这是 Python 字典和 JSON 对象之间的区别之一。获取对象的list会很有用,因为这是可能的。 -
@martineau 确实如此,但 JSON 允许
arrays(或 Python 中的lists),可以有重复...考虑:json.loads("[1,2,3,1,1]")跨度> -
@Joe:我知道...这就是为什么我在评论中询问他们是否可以接受
list(又名 JSON 数组)中的对象。 -
@martineau 抱歉,但我不确定您的意思... OP 给出了输入数据的示例,作为列表或对象。
-
Joe:当我发表评论时,它是一本字典词典,但现在@MushroomMauLa 已更改它(我认为这不是 OP 的意图,所以我要去回滚他/她的更改)。
标签: python json duplicates