import json
hrefs = list()
# open all workloads file as input
with open('json/allWorkloads.json') as workloads:
workloads = json.load(workloads)
with open('/users/home/xbbpggp/illumioProject/json/updatedDuplicates.json') as dups:
dups = json.load(dups)
# for dup in dups:
# dupHref = dup["href"]
# for workload in range(len(workloads)-1):
# if workloads[workload]["href"] == dupHref:
# del workloads[workload]
for dup in dups:
hrefs.append(dup["href"])
for workload in range(len(workloads)-1):
if workload["href"] in hrefs:
del workloads[workload]
with open('json/noDupWorkloads.json', 'w') as f:
json.dump(workloads, f, indent=4)
这是我目前的代码。注释掉的是我当前的工作脚本。然而,当给定数以万计的工作负载时,由于大 O(n^2),这需要非常长的时间来运行。我试图将它们分开,并跟踪列表中的每个 dup href,但是我收到第 22 行的错误消息:
if workload["href"] in hrefs:
TypeError: 'int' object is not subscriptable.
对此是否有任何修复,或完成我正在尝试做的事情的替代方法?
编辑:
我首先尝试了推荐的更改:
if workloads[workload]["href"] in hrefs:
然而,这现在产生了一个新的错误:
IndexError: list index out of range
但是现在有人在评论中提醒我注意 in
运算符仍然是 O(n^2)...但至少它不像以前那样嵌套了?那么,如果我继续尝试解决这个问题,会不会更好一些?