Python-Pandas读取.json.gz文件时触发BadGzipFile错误求助
解决BadGzipFile读取json.gz文件的问题
错误原因
你同时使用了gzip.open()和pd.read_json()的compression='gzip'参数,属于重复解压操作。gzip.open()已经将压缩文件解压为原始JSON数据流,此时pandas再尝试对这个数据流做gzip解压,会识别到开头是b'{"'(JSON的起始标识),判定这不是gzip文件,因此抛出BadGzipFile错误。
两种修正方案
方案1:直接让pandas处理解压(推荐)
不需要手动调用gzip.open(),pandas可以直接识别并解压gzip文件:
import pandas as pd file_path = '/data/data_0_0_0.json.gz' df = pd.read_json(file_path, compression='gzip', lines=True)
方案2:手动解压后,不让pandas重复处理
如果坚持用gzip.open()打开文件,需要去掉pd.read_json()的compression='gzip'参数:
import pandas as pd import gzip file_path = '/data/data_0_0_0.json.gz' with gzip.open(file_path, 'rb') as f: df = pd.read_json(f, lines=True)
补充说明
你手动解压能正常打开JSON文件,说明这个压缩包本身是有效的,问题完全出在代码的重复解压逻辑上,修正后即可正常读取。
内容的提问来源于stack exchange,提问作者welcometotheshire
相关产品推荐
相关产品推荐

