2014-09-21 4 views
35

Когда я пытаюсь солить что-то, я получаю AttributeError: 'str' object has no attribute 'write'питон рассол дает "AttributeError: 'ул' объект не имеет атрибута 'писать'"

Пример:

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

производит:

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

Что случилось?

+0

мне было бы интересно обсудить downvotes ... этот вопрос кажется тривиальным, но это спасло бы меня драгоценное время, если он уже был здесь .. – drevicko

+0

'twasn't I, но посмотрите на текст наведения на кнопку downvote: «Этот вопрос не показывает каких-либо исследований ...» может быть причиной, если разум был в игре. В целом, опрос downvotes является пустой тратой усилий; если бы они хотели сказать вам, они бы это сделали. – msw

+1

, если отличный ответ на ваш вопрос - «RTFM», тогда я мог понять, почему кто-то может понизить уровень –

ответ

57

Это тривиальная ошибка: pickle.dump(obj,file) принимает объект file, а не имя файла.

Что мне нужно что-то вроде:

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