Python - 打开使用作业库创建的 pickle 文件时出错

Python - Error opening pickle file created with job lib

我继承了一个存储在 pickle 文件中的数据集,据我所知,它是在 python 3.

中创建的

我正在尝试使用以下代码打开 python 中的 pickle 文件:

f = open('file.pkl', 'rb')
cl = pickle.loads(f)

当我这样做时,出现以下错误:

TypeError: a bytes-like object is required, not '_io.BufferedReader'

当我尝试仅使用 'r' 参数读取它时,会抛出类似的错误。

我看到pickel文件是用joblib创建的,我以前从来没有用过。我找不到任何说明是否需要以不同方式打开 joblib pickel 文件的文档。

下面是创建 pickle 文件的代码:

joblib.dump(list_of_dataframes, 'file.pkl', compress=3)

非常感谢任何帮助!

编辑

当我尝试直接从 joblib 加载时,这也不会打开:

with open(pickle_file) as f:
    data = joblib.load(f)

抛出以下错误:

UnicodeDecodeError: 'utf-8' codec can't decode byte 0x8b in position 1: invalid start byte

您使用了错误的加载函数。

您正在调用 pickle.loads(),但您应该使用 pickle.load()

.loads() 处理字符串,.load() 处理文件对象。

我找到了答案,这不是我所期望的! (感谢 @JohnGordon 之前的帮助。)我的文件已损坏,因为它太大而无法从 GitHub 直接拉取。为了解决这个问题,我使用了 Git LFS 并做了 git lfs pull 而不是 git pull。现在 unpickling 工作没有错误。