Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

object serialization as python scripts

14 views
Skip to first unread message

King

unread,
Nov 13, 2009, 11:46:55 AM11/13/09
to
I have looked upon various object serialization de-serialization
techniques.
(shelve, pickle, anydbm, custom xml format etc.) What I personally
feel that instead of all these
methods for saving the objects it would be easier to save the data as
python scripts itself.
In this case, loading the data is merely to run the script in the
context itself.
Need some expert advice and pointers here. Is there any thing (module,
script, doc, article)
helpful out there for the concern?

Prashant

Python 2.6.2
Win XP 32

Diez B. Roggisch

unread,
Nov 13, 2009, 12:33:48 PM11/13/09
to
King schrieb:

Why is it easier than the above mentioned - they are *there* (except the
custom xml), and just can be used. What don't they do you want to do?

Other than that, and even security issues put aside, I don't see much
difference between pickle and python code, except the latter being more
verbose. Which suits humans, but other than that has no advantage.

Diez

King

unread,
Nov 13, 2009, 1:26:11 PM11/13/09
to
> Why is it easier than the above mentioned - they are *there* (except the
> custom xml), and just can be used. What don't they do you want to do?
>
> Other than that, and even security issues put aside, I don't see much
> difference between pickle and python code, except the latter being more
> verbose. Which suits humans, but other than that has no advantage.
>
> Diez

My application is PyQt based and objects that I am trying to save are
couple of QGraphicsItem instances. You can't save instances of
QGraphicsItem
using pickle or shelve.
Custom xml format would be a real pain as you have to write code for
writing/reading both.

I am aware of security issue but over all there are only 5 statements
I have to use to get the entire
information back. I can do syntax checking and other stuff before I
should execute the script.

Another reason is that data should be in human readable form.

Chris Rebert

unread,
Nov 13, 2009, 1:45:24 PM11/13/09
to King, pytho...@python.org

Did you consider the `json` module? JSON is almost identical to Python
literal syntax.
http://docs.python.org/library/json.html

Cheers,
Chris
--
http://blog.rebertia.com

J Kenneth King

unread,
Nov 16, 2009, 8:27:18 AM11/16/09
to
King <anima...@gmail.com> writes:

Pickling should work just fine. If you cannot pickle the class with the
default pickler, you can hook into the pickler protocol to tell pickle
how to pickle instances of the class. Failing that you can write your
own pickler class for handling the special case.

Python scripts aren't really a good data format. They're not structured
in a way that would be easy to parse and extract information from in a
non-python context without a lot of work.

0 new messages