为什么我会收到属性错误?

Cia*_*arz 0 python dictionary pickle

方法返回的数据self.prepSetFile()是字典类型

    dataTodump=self.prepSetFile()
    try:
        settingFile=os.path.join(self.settingsDir,"setting.txt")
        output_phil=open(settingFile,'w')
        pickle.dump(dataTodump,settingFile,0)
    except: raise
Run Code Online (Sandbox Code Playgroud)

我不知道为什么我会收到属性错误

AttributeError:
'str'对象没有属性'write'

我甚至测试了dataTodump的数据类型,这显然是dict

Mar*_*ers 5

你需要传入一个打开的文件pickle.dump; 你只传递一个文件名:

output_phil=open(settingFile,'wb')
pickle.dump(dataTodump, output_phil, 0)
Run Code Online (Sandbox Code Playgroud)

请注意,该文件以二进制模式打开,以防止\n在非UNIX平台上转换字节.