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 工作没有错误。
我继承了一个存储在 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 工作没有错误。