305 votes

Utilisation de pickle.dump - TypeError: doit être str, pas octets

J'utilise python3.3 et je rencontre une erreur cryptique lorsque j'essaie 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
 

497voto

Jon Clements Points 51556

Le fichier de sortie doit être ouvert en mode binaire:

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

doit être:

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

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X