通过Python的gzip读取gz文件时出现BadGzipFile错误

0 投票
1 回答
33 浏览
提问于 2025-04-14 16:43

源文件是json格式的,我们把它压缩成了gz格式。文件没问题,我可以用notepad++打开这个文件。

import gzip

# Open the GZIP file in text mode ('rt')
with gzip.open('example.gz', 'rt') as f:
    file_content = f.read()
    print(file_content)

我遇到的错误是:

BadGzipFile: 不是一个gz压缩文件 (b'{\n')

我也尝试逐行读取,结果还是出现同样的错误。

import gzip

with gzip.open('example.gz', 'r') as fin:
    for line in fin:
        print('got line:', line)

这是我的示例json数据:

{
  "metadata_version": 1,
  "created": "2024-01-31T16:02:11.400125+00:00",
  "domain": {
    "name": "myname",
    "version": 1,
    "type": "core"
  },
  "id1": "01HNG439A8M7395MB9CWC4XSKC",
  "id2": {
    "id3": "efbc9315-6a27-455b-9050-02ea08eb1b69",
    "id4": "05933069-eeb5-4801-8801-fdd9819d08bf",
    "id5": "8b642da5-e954-402c-bcb9-a196d594ed62"
  },
  "data": "AAAAAAAA22RzW7CMBCEXyXymVQJNOHnVgGlHIoikvbQ2+IsYMnYdNemQlXfvQ4Q4MB1ZvebWftXVASGQTplzcyrWozEWub9LM8HsUyyNE5TxBjSvoyTJEuyfPUMvXUqOmKJ3x7ZTcChGBmvdUeMNQIps3mznnE"
}

1 个回答

0

这个GZ文件是从AWS S3下载的。当我们下载这个文件时,AWS会自动把它解压成原来的JSON格式,文件名还是myfile.gz。虽然文件名是myfile.gz,但实际上它是一个JSON文件,而不是一个GZ文件。

撰写回答