Training, Open Source computer languages

PerlPHPPythonMySQLhttpd / TomcatTclRubyJavaC and C++LinuxCSS

Search our site for:
Home Accessibility Courses Diary The Mouth Forum Resources Site Map About Us Contact
Turning objects into something you can store - Pickling (Python)
If you're working with objects in an OO language and you want to transfer them to another computer ... or simple save them from the current application for reloading into that application or another one on the same computer later on, you need to serialize the objects.

Data within OO programming languages is stored in the heap and as its name implies, the heap isn't neat - there's pointers and information all over the place, and even if you save an object correctly into a file of database, without extra information you probably couldn't read it back in as the memory locations and addresses used internally probably wouldn't be available in the next program. Serialization is the process that adds the extra information you'll need

Python's cPickle module allows you to serialise an object. The dumps method writes any object to a string, and the loads method reads the object back from a string. The reloading program does need to have imported any modules that were used within the dumped object, of course. If you want to write objects straight to a file, you can use the dump method instead, and reload using the load method.

Source code examples:
Picking
Unpickling
Class of objects to be stored / recovered

Note also the marshal module, which allows you to dump and restore simple objects, and the pickle module which is written in pure Python rather than a mixture of C and Python. Marshal is OK for simple objects (perhaps its a bit more efficient sometimes) but you should only use pickle rather then cPickle if there's a change of cPickle not bing abailable.

The term "shelving" is often used in association with pickling. Objects picled can be stored in strings, files, databases ... and the shelve module allows you to use an anydbm 'simple' database for the purpose. Personal choice, though - MySQL, but remember not to store objects for the long term as an upgrade / change to the internals of a class may render pickled object unloadable.
(written 2007-04-15 08:06:28)

 
Associated topics are indexed under
Y115 - Additional Python Facilities
J809 - Java - Serialization

Back to
Python decorators - wrapping a method call in extra code
Previous and next
or
Horse's mouth home
Forward to
Helsinki - what comes naturally

Some other Articles
Object Oriented Model - a summary of changes from PHP4 to PHP5
Course, right place, right time
Gordon Dodge, R.I.P.
Helsinki - what comes naturally
Turning objects into something you can store - Pickling (Python)
Python decorators - wrapping a method call in extra code
A picture (mostly in words) of Helsinki
__new__ v __init__ - python constructor alternatives?
Using a list of keys and a list of values to make a dictionary in Python - zip
Python dictionary for quick look ups
1638 posts, page by page
Link to page ... 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33 at 50 posts per page


This is a page archived from The Horse's Mouth at http://www.wellho.net/horse/ - the diary and writings of Graham Ellis. Every attempt was made to provide current information at the time the page was written, but things do move forward in our business - new software releases, price changes, new techniques. Please check back via our main site for current courses, prices, versions, etc - any mention of a price in "The Horse's Mouth" cannot be taken as an offer to supply at that price.

Link to Ezine home page (for reading).
Link to Blogging home page (to add comments).

© WELL HOUSE CONSULTANTS LTD., 2008: Well House Manor • 48 Spa Road • Melksham, Wiltshire • United Kingdom • SN12 7NY
PH: 01144 1225 708225 • FAX: 01144 1225 707126 • EMAIL: info@wellho.net • WEB: http://www.wellho.net • SKYPE: wellho