相关疑难解决方法(0)

如何找出/打印生成pickle文件的协议版本

在某些情况下,当我加载一个现有的 pickle 文件,然后再次转储它时,大小几乎减半。

我想知道为什么,第一个怀疑是协议版本。我可以以某种方式找出文件被腌制的协议版本吗?

python pickle

6
推荐指数
1
解决办法
1436
查看次数

将pandas写入HDF5时是否可以指定pickle协议?

有没有办法告诉 Pandas在编写 HDF5 文件时使用特定的 pickle 协议(例如 4)?

这是情况(大大简化):

  • 客户端 A 正在使用python=3.8.1(以及pandas=1.0.0pytables=3.6.1)。A 使用df.to_hdf(file, key).

  • 客户端 B 正在使用python=3.7.1(并且,正如它发生的那样,pandas=0.25.1并且 --pytables=3.5.2但这无关紧要)。B 尝试使用 读取 A 写入的数据pd.read_hdf(file, key),但失败并显示ValueError: unsupported pickle protocol: 5

请注意,这不会发生在纯数字的 DataFrame 中(例如pd.DataFrame(np.random.normal(size=(10,10))). 所以这是一个可重复的示例:

(base) $ conda activate py38
(py38) $ python
Python 3.8.1 (default, Jan  8 2020, 22:29:32)
[GCC 7.3.0] :: Anaconda, Inc. on linux
Type "help", "copyright", "credits" or "license" …
Run Code Online (Sandbox Code Playgroud)

python hdf5 pandas python-3.8

6
推荐指数
2
解决办法
6508
查看次数

标签 统计

python ×2

hdf5 ×1

pandas ×1

pickle ×1

python-3.8 ×1