python an sqlite objects

Gerhard Häring gh at ghaering.de
Wed Dec 3 12:50:17 EST 2008


skip at pobox.com wrote:
>     azrael> is it possible to save a python object into a sqlite database as
>     azrael> an atribute of type BLOB
> 
> Sure.  Just pickle the object and save the resulting string.

Be sure to save it as BLOB, not TEXT.

Suppose you have serialized your object as Python bytestring.

serialized = ...
... .execute("insert into mytable(mycolumn) values (?)",
       (sqlite3.Binary(serialized),))

This way you will get a BLOB in the form of a Python buffer object when
you later select it from the database, which you can then deserialize to
a Python object.

If you don't go the BLOB way, you may get an exception, because SQLite
assumes all text is UTF-8 encoded, which it isn't necessarily when you
put arbitrary serialized strings into the database.

-- Gerhard




More information about the Python-list mailing list