我将json文件加载到python中的字典中,然后通过json键对象进行枚举。我有以下代码块:
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]
我注意到对于小型json文件(几个KB),这似乎可以正常工作。但是,如果json文件确实很大(〜3 MB),则代码不会执行,并且在以下行中失败,并显示以下错误:
for i, block in enumerate(v['completed']): # enumerate inner blocks
for i, block in enumerate(v['completed']):
KeyError: 'completed'
是否有处理较大json文件的指针?错误的原因是什么?谢谢