我在一个目录中有很多json.gz文件,其中一些是json.gz.part。据说,在保存它们时,一些文件太大,它们被拆分了。
我试着像往常一样打开它们:
with gzip.open(file, 'r') as fin:
json_bytes = fin.read()
json_str = json_bytes.decode('utf-8') # 2. string (i.e. JSON)
bb = json.loads(json_str)
但是当涉及到.gz.part
文件时,我得到一个错误:
uncompress = self._decompressor.decompress(buf, size)
error: Error -3 while decompressing data: invalid code lengths set
我尝试了jiffyclub's解决方案,但得到以下错误:
_read_eof = gzip.GzipFile._read_eof
AttributeError: type object 'GzipFile' has no attribute '_read_eof'
编辑:
如果我一行一行地读,我就能读到大部分内容文件,直到我得到一个错误:
with gzip.open(file2,'r') as fin:
for line in fin:
print(line.decode('utf-8'))
打印大部分内容后,我得到:
error: Error -3 while decompressing data: invalid code lengths set
但是使用最后一种方法我无法将其内容转换为json文件。
1条答案
按热度按时间yws3nbqq1#
这段代码将打开.gz.part文件,解压缩数据,并将解压缩后的数据写入名为file.part的新文件。然后,您可以打开.part文件并读取其内容,就像处理任何其他文本文件一样。