我有一个需要 Python 2.6 的脚本。在下一个版本中,我将添加一个相对较大的 pickled 数据库,并且希望使用最快的 pickling 版本。如何确定在每个 Python 2.6 及更高版本中可用的 pickling 版本?
就像这样:
>>> import pickle
>>> pickle.compatible_formats
['1.0', '1.1', '1.2', '1.3', '2.0']
编辑
我认为可以依赖最新的文档。例如,Python 3.2.1 的 pickle 文档指出:
目前有四种不同的协议可用于序列化。
协议版本 0 是最初的人类可读协议,向后兼容早期版本的 Python。
协议版本 1 是旧的二进制格式,也与早期版本的 Python 兼容。
协议版本 2 是在 Python 2.3 中引入的。它提供了新式类的更高效的序列化。
协议版本 3 在 Python 3.0 中添加。它明确支持字节,并且不能被 Python 2.x 的 pickle 模块反序列化。这是当前推荐的协议,在可能的情况下请使用它。
我认为这很容易确认!
明确回答你的问题,这意味着 Python 2.6-2.7 支持 Pickle 版本 <= 2.0,而 Python 3.0-3.2 支持 Pickle 版本 <= 3.0。