python - 使用 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.
解决方案
文件( 中的f
参数pickle.load(f)
)应该以二进制读取(rb
)模式打开,而不是默认的文本(r
)模式。
with open("path/to/your/pickle.bin", "rb") as f:
empty_model = pickle.load(f)
推荐阅读
- python - 在 For 循环中从 Windows 批处理文件中的数组访问项目
- javascript - c#方法中的重定向不起作用
- ios - Swift Annotation Pin 的 Calloutbubble 手势
- php - 未捕获的异常:无法找到混合文件
- c# - 获取 Collection CosmosDb 中的所有文档
- javascript - beforeEach 中的承诺(Nuxt/vue-router)
- uml - 如何在序列图上表示等待信号的线程?
- javascript - Angular 不适用于自定义 html 属性
- python - 带计数的外键引用
- spring - 无法通过 Spring Security 身份验证