【问题标题】:Error when retrieving saved object using pickle使用 pickle 检索保存的对象时出错
【发布时间】:2021-02-07 05:06:02
【问题描述】:

使用基于 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.

【问题讨论】:

  • 你的变量f是什么?通常pickle.load的格式是pickle.load(open("PATH", "rb"))(“rb”是使用“wb”转储,二进制模式不是字符串)

标签: python object pickle agent-based-modeling


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-06-02
    • 2017-05-14
    • 1970-01-01
    • 2014-12-11
    • 2011-05-30
    • 2016-06-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多