J'utilise python3.3 et j'ai une erreur cryptique en essayant de décaper un dictionnaire simple.
Voici le code:
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)
et je reçois:
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
la source
la source
pickle.dump()
etpickle.load()
. Les deux endroits, cela n'a été mentionné qu'en passant vers le milieu de l'explication de la fonction. Quelqu'un devrait clarifier cela.Juste eu le même problème. En Python 3, les modes binaires 'wb', 'rb' doivent être spécifiés alors qu'en Python 2x, ils ne sont pas nécessaires. Lorsque vous suivez des didacticiels basés sur Python 2x, c'est pourquoi vous êtes ici.
la source