python枚举字典值对象-不适用于大对象

时间:2018-08-15 13:21:07

标签: python json dictionary

我将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文件的指针?错误的原因是什么?谢谢

0 个答案:

没有答案