How can I use pickle to save a dict?

I have looked through the information that the Python docs give, but I'm still a little confused. Could somebody post sample code that would write a new file then use pickle to dump a dictionary into it?


尝试这个:

import pickle

a = {'hello': 'world'}

with open('filename.pickle', 'wb') as handle:
    pickle.dump(a, handle, protocol=pickle.HIGHEST_PROTOCOL)

with open('filename.pickle', 'rb') as handle:
    b = pickle.load(handle)

print a == b

import pickle

your_data = {'foo': 'bar'}

# Store data (serialize)
with open('filename.pickle', 'wb') as handle:
    pickle.dump(your_data, handle, protocol=pickle.HIGHEST_PROTOCOL)

# Load data (deserialize)
with open('filename.pickle', 'rb') as handle:
    unserialized_data = pickle.load(handle)

print(your_data == unserialized_data)

The advantage of HIGHEST_PROTOCOL is that files get smaller. This makes unpickling sometimes much faster.

Important notice : The maximum file size of pickle is about 2GB.

Alternatives

  • CSV: Super simple format (read & write)
  • JSON: Nice for writing human-readable data; VERY commonly used (read & write)
  • YAML: YAML is a superset of JSON, but easier to read (read & write, comparison of JSON and YAML)
  • pickle: A Python serialization format (read & write)
  • MessagePack (Python package): More compact representation (read & write)
  • HDF5 (Python package): Nice for matrices (read & write)
  • XML: exists too *sigh* (read & write)
  • For your application, the following might be important:

  • Support by other programming languages
  • Reading / writing performance
  • Compactness (file size)
  • See also: Comparison of data serialization formats

    In case you are rather looking for a way to make configuration files, you might want to read my short article Configuration files in Python


    # Save a dictionary into a pickle file.
    import pickle
    
    favorite_color = {"lion": "yellow", "kitty": "red"}  # create a dictionary
    pickle.dump(favorite_color, open("save.p", "wb"))  # save it into a file named save.p
    
    # -------------------------------------------------------------
    # Load the dictionary back from the pickle file.
    import pickle
    
    favorite_color = pickle.load(open("save.p", "rb"))
    # favorite_color is now {"lion": "yellow", "kitty": "red"}
    
    链接地址: http://www.djcxy.com/p/48694.html

    上一篇: 如何从网页获取JSON到Python脚本

    下一篇: 我如何使用泡菜保存字典?