30

I am trying to learn how to pickle and save an object in python. However, when I use the sample code below I get the following error: io.UnsupportedOperation: read which traces back to favorite_color = pickle.load(f_myfile). I cannot find a good explanation of this particular error. What am I doing wrong and how do I correct it?

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()
Michael
  • 11,865
  • 22
  • 63
  • 111
  • Possible duplicate of [Python error message io.UnsupportedOperation: not readable](https://stackoverflow.com/questions/44901806/python-error-message-io-unsupportedoperation-not-readable) – user60561 Aug 25 '18 at 11:55

1 Answers1

72

Change:

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

to:

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

and you can see the dict obj you've pickled.

Michael
  • 11,865
  • 22
  • 63
  • 111
Jay Choo
  • 856
  • 7
  • 6