2

我正在使用 ijson ( https://pypi.python.org/pypi/ijson ) 来解析一个大的 JSON 文件。它有几个 GB,因此我无法将其全部存储在内存中。问题是在文件中间的某个地方,解析器遇到了错误(具体的异常是 UnicodeDecodeError)。我不需要每条数据,所以如果我跳过该条目也没关系,但我无法让它继续超过错误所在的位置。

我的代码看起来像这样:

parser = ijson.parse(file)
for prefix, event, value in parser:
    do stuff

如果我尝试在循环内捕获异常,它不会捕获它,因为它在解析中得到错误。如果我把它放在循环之外,我就不能在我离开的地方继续(据我所知)。我怎样才能绕过这个错误并继续前进?或者,如何以不需要打开文件或将其存储在内存中的方式修复文件?

4

0 回答 0