【问题标题】:python pickle gives "AttributeError: 'str' object has no attribute 'write'"python pickle给出“AttributeError:'str'对象没有属性'write'”
【发布时间】:2014-09-21 11:43:06
【问题描述】:

当我尝试腌制某些东西时,我得到一个AttributeError: 'str' object has no attribute 'write'

一个例子:

import pickle
pickle.dump({"a dict":True},"a-file.pickle")

产生:

...
AttributeError: 'str' object has no attribute 'write'

怎么了?

【问题讨论】:

  • 我有兴趣讨论否决票...这个问题似乎微不足道,但如果它已经在这里,它会节省我宝贵的时间...
  • 不是我,但请查看否决按钮上的悬停文本:“这个问题没有显示任何研究工作……”如果原因在起作用,这可能是原因。一般来说,质疑反对票是浪费精力。如果他们想告诉你,他们会告诉你的。
  • 如果您的问题的完美答案是“RTFM”,那么我可以理解为什么有人会否决
  • @MikeMcKerns 您知道,SO 通常(通常?)比 FM 更快地获得答案,尤其是当您收到无信息异常时(哪个字符串没有 'write '?也许它是“一个字典”?所以pickle希望字典键有写方法??这是怎么回事??)。
  • 有趣的是,SO 社区对这个问题给予了相同数量的赞成票和反对票 - 似乎社区在这个问题上存在分歧!

标签: python python-2.7 pickle


【解决方案1】:

这是一个小错误:pickle.dump(obj,file) 采用 file 对象,而不是文件名。

我需要的是这样的:

with open("a-file.pickle",'wb') as f:
    pickle.dump({"a dict":True},f)

【讨论】:

    猜你喜欢
    • 2017-07-06
    • 2022-11-13
    • 1970-01-01
    • 1970-01-01
    • 2019-03-25
    • 1970-01-01
    • 2018-12-01
    • 2015-09-30
    相关资源
    最近更新 更多