Python -阅读“. json.gz”文件时Pandas“BadGzipFile”错误

wfsdck30  于 2023-02-14  发布在  Python
关注(0)|答案(1)|浏览(237)

我正在尝试将."json.gz"文件中的数据作为 Dataframe 读入。我一直收到错误消息,指示它是"BadGzipFile"。但是,当我手动解压缩该文件时(即只需在我的查找器中双击它),我就能够成功地打开json文件,这让我相信文件是好的,但是当我在Python中运行下面的代码时,我收到"BadGzipFile"错误。
我是非常新的. gzip文件,并做了相当多的研究,试图找出问题是什么。到目前为止,我一直不成功。任何帮助将不胜感激!
下面是我的代码:

import os
import json
import gzip

file_path = '/data/data_0_0_0.json.gz'

with gzip.open(file_path, 'rb') as f:
    df = pd.read_json(f, compression='gzip', lines=True)

下面是我收到的错误:

BadGzipFile: Not a gzipped file (b'{"')
ca1c2owp

ca1c2owp1#

这里的代码发生了什么:

with gzip.open(file_path, 'rb') as f:
    df = pd.read_json(f, compression='gzip', lines=True)

你在file_path打开一个Gzip文件,然后你告诉Pandas你打开的东西(f)本身是另一个Gzip文件。这是一个Json文件,当它显示BadGzipFile并带有方括号时,它是在告诉您它找到的文件是以方括号开头的,而不是Gzip文件的幻数。
您应该将其更改为使用gzip打开文件,然后直接读取生成的文件,或者让Pandas读取文件。
第一个问题是:

with gzip.open(file_path, 'rb') as f:
    df = pd.read_json(f, lines=True)

第二个实际上更简单,因为pd.read_json将基于文件名进行infer the compression转换,并且文件以.gz结尾,您只需编写:

df = pd.read_json(file_path)

相关问题