python - Pickle-加载超过1行的pkl模型文件

标签 python python-3.x pandas scikit-learn pickle

使用 Notepad++ 打开时,相关文件包含如下行:

€X   Neural Networksq .€]q (X   ClassificationqKX      Team1 winq]q(X   Team1qX   Team2qe]q(X
Team1_rankqX
Team2_rankqX   Diff1q   X   Diff2q
e}q(hcpandas.core.indexes.base
_new_Index
qcpandas.core.indexes.base
Index
q

等等。 pkl 文件中有很多上面未显示的符号。

下面是我尝试将文件读取/解析为可读内容的代码:

加 pickle :

import pickle; pickle.HIGHEST_PROTOCOL
with open(r"somefile.pkl", 'rb') as f:
data = pickle.load(f)
print (data)

与 Pandas :

import pandas as pd
up_df = pd.read_pickle(r"somefile.pkl")
print (up_df)

在这两种情况下,我都会得到一个仅写入“神经网络”的 str 对象

我的 somefile.pkl 大小为 63kb,并且显然有字节码? (猜是)在里面。我该如何将其转换为可读的内容?

最佳答案

也许 pickle 文件附加了多个对象。尝试类似的东西 -

objects = []
with open(filename, 'rb') as f:
data = pickle.load(f)
    while True:
        try:
            objects.append(pickle.load(filename))
        except EOFError:
            break

引用How to read pickle file?

关于python - Pickle-加载超过1行的pkl模型文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55411405/

相关文章:

python - django-rest-framework-接受提交的外键字段的ID

python - 通过 2to3 将 selenium.py 转换为 python 3

python - 使用 asyncio 的非阻塞 I/O

python - 从字典创建 Pandas 数据框,同时保持列的顺序

python - 使用 pandas 对 'tidy' 数据帧重新采样

python - Selenium Python StaleElementReferenceException

Python 的 win32api 只打印到默认打印机

python - 如何使用另一个列表作为键的引用来更改 Python 3.5 字典中键的顺序?

python .sort() 对 __lt__ 的优先级高于 __gt__?

python - 按变量 pandas 过滤