我有一个json文件组织像下面一个,我想删除所有重复的2键对元素
[{'name': 'anna', 'city': 'paris','code': '5'},
{'name': 'anna', 'city': 'paris','code': '2'},
{'name': 'henry', 'city': 'london','code': '1'},
{'name': 'henry', 'city': 'london','code': '3'},...]
预期产出
[{'name': 'anna', 'city': 'paris'},{'name': 'henry', 'city': 'london'}]
我正在为这个任务而奋斗,你有什么想法吗?
3条答案
按热度按时间8xiog9wr1#
你需要为(名字,城市)和具有相同对的记录创建唯一的键,只需要应用在最终结果中保留什么的条件。
一旦完成,得到值,这就是答案。
使用
walrus
运算符和dict-comprehension
rmbxnbpk2#
在pure python中,您可以在字典行中选择所需的内容,使用tuple(带{})之类的可散列行集合,然后使用所选内容重建行
x8diyxa73#
下面是另一种使用 * set * 的方法(许多方法中的一种),如下所示:
这样做至少有一个好处。其他的答案是构建新的字典来包含键'name'和'city',并隐式忽略'code',这对于所示的数据来说是很好的。然而,这种方法构建的新字典不包括'code'。这意味着字典结构(输入数据)可以在不必改变功能代码的情况下改变,即,"代码"键可以不存在,并且可以引入除了"名称"和"城市"之外的键/值对