将JSON元素附加到列表中,然后在Python中有效地删除重复项

2024-04-25 20:16:46 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个json文件,例如

[{"fu": "thejimjams", "su": 232104580}, {"fu": "thejimjams", "su": 216575430}, {"fu": "thejimjams", "su": 184695850}]

我需要将“su”类别中的一堆json文件的所有值放在一个列表中。所以每个文件(大约200个)都有自己的列表,然后我将合并列表并删除重复项。我这样做是为了节省系统资源和时间吗?

我正在考虑制作一个列表,循环遍历json文件,让每个“su”都放在一个列表中,转到下一个文件,然后追加列表,然后扫描以删除重复项。

关于删除重复项,我想按照这个问题的答案来做:Combining two lists and removing duplicates, without removing duplicates in original list除非这不是有效的

基本上可以接受关于如何实现这一点的建议。

谢谢


Tags: 文件答案json列表时间类别suduplicates
3条回答

你在乎点餐吗?如果没有,您可以将数字添加到set()中,它将自动删除重复项。例如,如果有200个“su”列表:

lists = [
    [...su's for file 1...],
    [...su's for file 2...],
    etc.
]

然后您可以将它们组合成一个大集合:

set(su for sus in lists for su in sus)

非常直接的方法是:

json_list = [{"fu": "thejimjams", "su": 232104580}, {"fu": "thejimjams", "su": 216575430}, {"fu": "thejimjams", "su": 184695850}]

new_list = []
for item in json_list:
    if item not in new_list:
        new_list.append(item)

使用python set来保存元素的唯一列表。在添加元素时将删除重复项。

output = set()
for filename in filenames:
    data = json.loads(open(filename, 'r').read())
    for row in data:
        output.add(row.get('su'))

# convert back to a list
output = list(output)

相关问题 更多 >