python - Pickle-加载多于 1 行的 pkl 模型文件
问题描述
当使用 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文件中有很多上面没有显示的符号。
以下是我尝试将文件读取/解析为可读的代码:
用泡菜:
import pickle; pickle.HIGHEST_PROTOCOL
with open(r"somefile.pkl", 'rb') as f:
data = pickle.load(f)
print (data)
与熊猫:
import pandas as pd
up_df = pd.read_pickle(r"somefile.pkl")
print (up_df)
在这两种情况下,我都会得到一个str
只写“神经网络”的对象
我somefile.pkl
的大小为 63kb,显然有字节码?(猜测是)在里面。我该如何将它转换为可读的东西?
解决方案
也许泡菜文件附加了多个对象。尝试类似的东西 -
objects = []
with open(filename, 'rb') as f:
data = pickle.load(f)
while True:
try:
objects.append(pickle.load(filename))
except EOFError:
break
请参阅如何读取泡菜文件?
推荐阅读
- flutter - 如何在颤动的多个视图中共享相同的值?
- python - 如何正确处理外部文本文件
- android - Flutter- 在模拟器上运行但不在设备上运行的应用程序(使用 http 包)
- html - Iphone“Go”按钮正在重定向到上一页
- java - Google App Engine 应用程序连接到第三方云
- c# - 一对一多导致循环或多级联路径错误
- r - R在一个条件下移动多行
- c# - 聊天机器人重新启动有关最小化的对话
- python - 在变量最后一个元素的函数中分配特定值
- amazon-web-services - 是否可以将 AWS 应用程序负载平衡与 CloudFront 分配和 EC2 作为目标组一起使用