You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Python gzip模块读取GZ文件时触发BadGzipFile错误求助

问题描述
  • 源文件为JSON格式,被标注为GZ压缩格式,可通过Notepad++正常打开,但执行以下两段Python代码读取时,均触发BadGzipFile错误:

BadGzipFile: Not a gzipped file (b'{\n')

第一段测试代码

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)

第二段测试代码

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"
}
解决方案

错误信息里的b'{\n'说明文件开头是JSON的左大括号,核心问题是这个.gz文件并未被gzip压缩,要么是扩展名标错,要么是压缩过程出错。

解决步骤及代码调整

  1. 验证文件类型
    直接用文本编辑器打开文件,若内容和示例JSON一致,说明是纯JSON文件,改用普通文件读取方式:
with open('example.gz', 'r', encoding='utf-8') as f:
    file_content = f.read()
    print(file_content)
  1. 排查压缩格式问题
    如果确实是压缩文件但Python的gzip模块识别不了,可能是用了zip等其他压缩格式(扩展名误标为gz),改用zipfile模块读取:
import zipfile

with zipfile.ZipFile('example.gz', 'r') as zip_file:
    # 假设压缩包内仅有一个JSON文件,获取文件名
    json_file_name = zip_file.namelist()[0]
    with zip_file.open(json_file_name) as f:
        content = f.read().decode('utf-8')
        print(content)
  1. 检查文件完整性
    如果以上方法都不行,用系统自带的解压工具尝试解压该文件,若解压失败,说明文件已损坏,需要重新获取正确的压缩文件。

内容的提问来源于stack exchange,提问作者Anson

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.28 02:43:24