Python:保存对象并使用pickle。使用 pickle.dump 时出错
Posted
技术标签:
【中文标题】Python:保存对象并使用pickle。使用 pickle.dump 时出错【英文标题】:Python: saving objects and using pickle. Error using pickle.dump 【发布时间】:2010-12-25 12:50:37 【问题描述】:你好,我有一个错误,我不知道原因:
>>> class Fruits:pass
...
>>> banana = Fruits()
>>> banana.color = 'yellow'
>>> banana.value = 30
>>> import pickle
>>> filehandler = open("Fruits.obj",'w')
>>> pickle.dump(banana,filehandler)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "C:\Python31\lib\pickle.py", line 1354, in dump
Pickler(file, protocol, fix_imports=fix_imports).dump(obj)
TypeError: must be str, not bytes
>>>
我不知道如何解决这个错误,因为我不明白。 非常感谢。
【问题讨论】:
为我工作。在此之前命名空间是否受到了某种污染? @Andrew Jaffe:对不起...我不明白你...你是什么意思? 如果这些是您在 python 会话中做的第一件事,它会起作用吗? 我根据下面的答案更正了它,现在它可以工作了,但我仍然不知道如何加载我的对象。 【参考方案1】:您必须以二进制模式打开您的 filehandler,使用 wb 而不是 w:
filehandler = open(b"fruits.obj","wb")
【讨论】:
以上是关于Python:保存对象并使用pickle。使用 pickle.dump 时出错的主要内容,如果未能解决你的问题,请参考以下文章