首页 > 解决方案 > 使用 pickle 检索保存的对象时出错

问题描述

使用基于 MESA 代理的建模包。使用 pickle 保存我的中间模型的状态。但是当检索保存的模型时,执行最终会出错,说:

  File "/home/demonwolf/PycharmProjects/pythonProject1/main.py", line 281, in <module>
    empty_model = pickle.load(f)
  File "/home/demonwolf/anaconda3/envs/ABM/lib/python3.7/codecs.py", line 322, in decode
    (result, consumed) = self._buffer_decode(data, self.errors, final)
UnicodeDecodeError: 'utf-8' codec can't decode byte 0x80 in position 0: invalid start byte```



Any help would be appreciated.
Thanks in advance.

标签: pythonobjectpickleagent-based-modeling

解决方案


文件( 中的f参数pickle.load(f))应该以二进制读取(rb)模式打开,而不是默认的文本(r)模式。

with open("path/to/your/pickle.bin", "rb") as f:
    empty_model = pickle.load(f)

推荐阅读