使用 pickle.dump - TypeError: must be str, not bytes
问题描述
我使用的是 python3.3,在尝试腌制一个简单的字典时遇到了一个神秘的错误.
I'm using python3.3 and I'm having a cryptic error when trying to pickle a simple dictionary.
代码如下:
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
解决方案
输出文件需要以二进制方式打开:
The output file needs to be opened in binary mode:
f = open('varstor.txt','w')
需要:
f = open('varstor.txt','wb')
相关文章