import sqlite3 import sys def custom_convert(data): print("CONVERTING", data) return "Custom({})".format(data.decode() ) def show(sql): print(sql) print("-" * len(sql)) cs.execute(sql) for row in cs: print(row) print("") if __name__ == "__main__": sqlite3.register_converter("CUSTOM", custom_convert) db = sqlite3.connect(":memory:", detect_types=sqlite3.PARSE_DECLTYPES) cs = db.cursor() cs.execute("create table demo (alpha custom)") cs.executemany( "insert into demo (alpha) values (?)", [["foo"]]) print("") show("select alpha from demo union all select alpha from demo") show("select alpha from demo union select alpha from demo") """ $ python3.4 demo3.py select alpha from demo union all select alpha from demo ------------------------------------------------------- CONVERTING b'foo' CONVERTING b'foo' ('Custom(foo)',) ('Custom(foo)',) select alpha from demo union select alpha from demo --------------------------------------------------- ('foo',) """