我正在使用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
pickle.dump()
和pickle.load()
的文档中提到了需要进行“二进制”读写的必要性。这个提示只是在函数解释的中间部分简单提到了两次。有人应该把这个提示表述得更清楚明白。 - Matthew