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

我正在使用python3.3,并且在尝试腌制一个简单的字典时遇到一个神秘的错误。


这是代码:


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


暮色呼如
浏览 687回答 3
3回答

DIEA

需要以二进制模式打开输出文件:f = open('varstor.txt','w')需要是:f = open('varstor.txt','wb')

偶然的你

遇到完全相同的问题后,我看到了针对和的文档中提到了“二进制”读/写的需求。在两个地方,仅在函数说明的中间提到了这一点。有人应该更清楚地说明这一点。pickle.dump()pickle.load()
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python