使用python删除多个JSON中的重复数组
我有多个JSON记录,比如使用python删除多个JSON中的重复数组,python,arrays,json,python-3.x,list,Python,Arrays,Json,Python 3.x,List,我有多个JSON记录,比如 { "Stat": "DEN", "Change": [{ "From": "", "To": "DEN", "changeTimestamp": "20200325000000" },
{
"Stat": "DEN",
"Change": [{
"From": "",
"To": "DEN",
"changeTimestamp": "20200325000000"
},
{
"From": "",
"To": "DEN",
"changeTimestamp": "20200325000000"
},
],
"Date": 20200401
}
因为数组中有重复的更改,所以需要消除它们
{
"Stat": "DEN",
"Change": [{
"From": "",
"To": "DEN",
"changeTimestamp": "20200325000000"
}
],
"Date": 20200401
}
由于它是一个数组,我无法使用列表,
我有一个类似的代码
doc['Changes'] = list(set(doc['Changes'])) if doc['Changes'] else []
它适用于列表中的项目
但我知道这不是一个列表这是一个数组它不会工作,
我可以得到帮助吗,请您可以通过字典理解删除重复的键,因为字典不允许重复的键。我将
的标准设置为
,因为您在同一个接收器上发送了两次
{each['To']: each for each in doc['Changes']}.values()
如果存在重复项,则需要更正以生成一个,如果只有一个,则不应获得分发…这将正常工作?是的,它将正常工作,因此它应该像doc['Changes']={each['to']:doc['Changes']}.values()中的每个。我是对的吗?是的,你是对的。非常感谢最后一个问题,如果我有类似json的更改有两个唯一的值(三个值中有两个是重复的){“Status”:“CLO”,“Changes”:[{“From”:“To”:“ACT”,“changeTimestamp”:“20200325000000”},{“From”:“DEC”,“To”:“ACT”;“changeTimestamp”:“20200325000000”},{“From”:“DEC”,“To”:“ACT”,“changeTimestamp:”20200325000000“}],”Date:”20200401}到底是什么“它不是一个列表它是一个数组”?它不是一个类似于“Changes”的列表[1,2,3,4]。它是上面的数组好吧,但是什么?
doc['Changes']
肯定是一个列表
。它不是一个类似于“Changes”的列表[1,2,3,4].它是上面提到的数组。你这是什么意思?也许你应该用Python术语来澄清自己。类型([1,2,3,4])
给出了列表。