好吧,我假设您能够正确地将json加载到python措辞中,让我们调用它
item_dict
,但键可能不同。
现在您需要它进入那个python对象,并解码
complete_time
字段。不幸的是,python
strptime
不知道
Z
时区,所以我们必须跳过最后一个字符。
另外,在迭代集合对象时,不应修改该对象,因此防弹方法是存储要删除的索引,然后再将其删除。代码可以是:
datelimit = datetime.datetime(2018, 4, 1) # limit date for completed_time
to_remove = []
dateformat = '%Y-%m-%dT%H:%M:%S.%f'
for k, v in item_dict.items(): # enumerate top_level objects
for i, block in enumerate(v['completed']): # enumerate inner blocks
complete_time = datetime.datetime.strptime( # skip last char from complete_time
block["complete_time"][:-1], dateformat)
# print(k, i, complete_time) # uncomment for tests
if complete_time < datelimit: # too old
to_remove.append((k, i)) # store the index for later processing
for k, i in reversed(to_remove): # start from the end to keep consistent indices
del item_dict[k]["completed"][i] # actual deletion