On 2008-03-01, 23:41 GMT, Mel wrote: > There's nothing much wrong. cur.fetchall is returning a list > of all the selected rows, and each row is a tuple of fields. > Each tuple is being converted for display by repr, so the > strings are shown as unicode, which is what they are > internally. Change the print to > > for (field,) in cur.fetchall(): > print field > > and you'll see your plain-text strings.
Thanks for your help, but plain-text strings is not what I wanted. The boolean variables was what I was after. See this modified version of the script: #!/usr/bin/python import sqlite3 def adapt_boolean(bol): if bol: return "True" else: return "False" def convert_boolean(bolStr): if str(bolStr) == "True": return bool(True) elif str(bolStr) == "False": return bool(False) else: raise ValueError, "Unknown value of bool attribute '%s'" % bolStr sqlite3.register_adapter(bool,adapt_boolean) sqlite3.register_converter("boolean",convert_boolean) db = sqlite3.connect(":memory:") cur=db.cursor() cur.execute("create table test(p boolean)") p=False cur.execute("insert into test(p) values (?)", (p,)) p=True cur.execute("insert into test(p) values (?)", (p,)) cur.execute("select p from test") for (field,) in cur.fetchall(): print field,type(field) The output here is: [EMAIL PROTECTED] dumpBugzilla]$ python testAdaptors.py False <type 'unicode'> True <type 'unicode'> [EMAIL PROTECTED] dumpBugzilla]$ I thought that converter is there for just exactly this -- that I would get back bool values not strings. Sorry for not being clear in the first run. Matej -- http://mail.python.org/mailman/listinfo/python-list