我有一个json文件,例如。
[{“fu”:“thejimjams”,“su”: 232104580},{“fu”:“thejimjams”,“su”: 216575430},{“fu”:“thejimjams”,“su”: 184695850}]
我需要将一堆json文件的所有值放在列表中的“su”类别中。所以每个文件(大约200个)都有自己的列表,然后我将组合列表并删除重复项。在我这样做以节省系统资源和时间时,是否存在并且可取?
我正在考虑制作一个列表,循环浏览json文件,将每个“su”放在列表中,然后转到下一个文件然后追加列表,然后扫描以删除重复项。
就删除重复内容而言,我正在考虑关注这个问题的答案:Combining two lists and removing duplicates, without removing duplicates in original list除非效率不高
基本上对有关实施此方法的好方法的建议持开放态度。
谢谢,
答案 0 :(得分:4)
你关心订单吗?如果没有,您可以将数字添加到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)
答案 1 :(得分:1)
非常直接的方式是:
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)
答案 2 :(得分:1)
使用旨在保留唯一元素列表的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)