使用 pickle.dump - 类型错误:必须是 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

原文由 John Rowland 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 688
1 个回答

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

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

需要是:

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

原文由 Jon Clements 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题