Estoy usando python3.3 y tengo un error críptico cuando intento encurtir un diccionario simple.
Aquí está el código:
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)
y obtengo:
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
python
python-3.x
pickle
John Rowland
fuente
fuente
pickle.dump()
ypickle.load()
. En ambos lugares, esto se mencionó solo al pasar cerca del medio de la explicación de la función. Alguien debería aclarar esto.Solo tuve el mismo problema. En Python 3, deben especificarse los modos binarios 'wb', 'rb', mientras que en Python 2x no son necesarios. Cuando sigues tutoriales basados en Python 2x, es por eso que estás aquí.
fuente