【问题标题】:Python: saving objects and using pickle. Error using pickle.dumpPython:保存对象并使用pickle。使用 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 会话中做的第一件事,它会起作用吗?
  • 我根据下面的答案更正了它,现在它可以工作了,但我仍然不知道如何加载我的对象。

标签: python object save pickle


【解决方案1】:

您必须以二进制模式打开您的 filehandler,使用 wb 而不是 w

filehandler = open(b"fruits.obj","wb")

【讨论】:

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