为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

暮色呼如 2019-11-14 09:34:42
我正在使用python3.3,并且在尝试腌制一个简单的字典时遇到一个神秘的错误。这是代码:import osimport picklefrom pickle import *os.chdir('c:/Python26/progfiles/')def storvars(vdict):          f = open('varstor.txt','w')    pickle.dump(vdict,f,)    f.close()    returnmydict = {'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
查看完整描述

3 回答

?
DIEA

TA贡献1820条经验 获得超2个赞

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


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

需要是:


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


查看完整回答
反对 回复 2019-11-14
?
偶然的你

TA贡献1841条经验 获得超3个赞

遇到完全相同的问题后,我看到了针对和的文档中提到了“二进制”读/写的需求。在两个地方,仅在函数说明的中间提到了这一点。有人应该更清楚地说明这一点。pickle.dump()pickle.load()

查看完整回答
反对 回复 2019-11-14
  • 3 回答
  • 0 关注
  • 657 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信