使用pickle.dump – TypeError:必须是str,而不是字节

我正在使用python3.3,并尝试pickle一个简单的字典时,我有一个神秘的错误。

这里是代码:

import os import pickle from pickle import * os.chdir('c:/Python26/progfiles/') def storvars(vdict): f = open('varstor.txt','w') pickle.dump(vdict,f,) f.close() return mydict = {'name':'john','gender':'male','age':'45'} storvars(mydict) 

我得到:

 Traceback (most recent call last): File "C:/Python26/test18.py", line 31, in <module> storvars(mydict) File "C:/Python26/test18.py", line 14, in storvars pickle.dump(vdict,f,) TypeError: must be str, not bytes 

输出文件需要以二进制模式打开:

 f = open('varstor.txt','w') 

需要是:

 f = open('varstor.txt','wb')