On Thu, 17 Jun 2010 06:39:44 am Knacktus wrote: > So far, so good. But what is best practise to prepare this data for > general persistence? It should be usable for serialisation to xml or > storing to an RDBMS or ObjectDatabase ...
Oh wow, deja vu... this is nearly the same question as just asked a day or so ago, in the thread "conventions for establishing and saving default values for variables". The answer I give will be more or less the same as was already given in that thread: Use ConfigParser for ini-style config files. Use pickle or shelve for serialising arbitrary Python objects. You probably shouldn't use marshal, as that's awfully limited and really only designed for serialising Python byte code. You can roll your own XML solution using the various XML modules in the standard library, or use plistlib, an XML-based storage format borrowed from Mac OS X. Or one of the other standard serialisers like JSON or YAML, although YAML is not in the standard library yet. Or you can use any one of many different databases, although that's probably massive overkill. > I guess I have to incorporate some kind of id for every object and > use this as reference with some kind of look-up dictionary, "Have to"? Certainly not. If your data doesn't need an ID field, there's no need to add one just for serialisation. It would be a pretty bizarre serialiser that couldn't handle this: {key: value} but could handle this: ({id: key}, {key: value}) > but I > wouldn't like it and hope that there're some other sweet pythonic > solutions? There's a few... :) By the way, looking at your class name: class FavoritMovies(object): I can forgive the American (mis)spelling of Favo(u)rite, but why have you dropped the E off the end of "favorite"? I'd almost think your keyboard was broken, but no, you have E in Movies and object. Deliberate misspellings in class and variable names will cost you *far* more in debugging time when you forget to misspell the words than they will save you in typing. Trust me on this. -- Steven D'Aprano _______________________________________________ Tutor maillist - Tutor@python.org To unsubscribe or change subscription options: http://mail.python.org/mailman/listinfo/tutor