2013-09-23 13 views
6

Próbuję dowiedzieć się, jak pickle i zapisać obiekt w python. Jednak gdy użyję poniższego sample code, pojawi się następujący komunikat o błędzie: io.UnsupportedOperation: read, który prześle z powrotem do favorite_color = pickle.load(f_myfile). Nie mogę znaleźć dobrego wyjaśnienia tego konkretnego błędu. Co robię źle i jak mogę to poprawić?Błąd wytrawiania w Pythonie: io.UnsupportedOperation: read

import pickle # or import cPickle as pickle 

# Create dictionary, list, etc. 
favorite_color = { "lion": "yellow", "kitty": "red" } 

# Write to file 
f_myfile = open('myfile.pickle', 'wb') 
pickle.dump(favorite_color, f_myfile) 
f_myfile.close() 

# Read from file 
f_myfile = open('myfile.pickle', 'wb') 
favorite_color = pickle.load(f_myfile) # variables come out in the order you put them in 
f_myfile.close() 
+0

Tak się dzieje podczas kopiowania i wklejania. – cdarke

Odpowiedz

16

Zmiana:

# Read from file 
f_myfile = open('myfile.pickle', 'wb') 

do:

f_myfile = open('myfile.pickle', 'rb') 

i widać dict obj masz marynowane.

+0

Niewiarygodne, że musiałem Google "błąd", aby odkryć, jaki jestem głupi. Dzięki! –