Раскрытие: я автор APSW
Да, очень легко. У APSW есть нечто, называемое трассировщиком строк, зарегистрированное в http://apidoc.apsw.googlecode.com/hg/execution.html#tracing
Трассировщик строк вызывается с каждым рядом. Вы можете полностью пропустить строку, вернув None, или создать любой тип данных, который вы хотите, основываясь на том, что было передано (это отлично подходит для тестирования). Если средство трассировки строк установлено в соединении, оно влияет на все курсоры. Если на курсоре, то затрагивается только этот курсор. Cursor.getdescription позволит вам получить имена столбцов и объявленные типы.
Ваш код выше фактически не использует row_factory, поскольку вы индексируете строку по номеру, который работает как в pysqlite и APSW. sqlite3.Row позволяет индексировать по имени, чтобы последняя строка кода была:
s[str(row.wbcode)+str(row.Year)]=float(row[query_name])
Кстати, есть также группа Python SQLite, управляемая автором pysqlite и мной, связанная с сайтами pysqlite и APSW.