SQLite Row Factory и Data Types
Следующая таблица показывает связь между типами данных SQLite и типов данных Python:None
тип конвертируется вNULL
int
тип конвертируется вINTEGER
float
тип конвертируется вREAL
str
тип конвертируется вTEXT
bytes
тип конвертируется вBLOB
sqlite3.Row
используется для доступа к колонкам запроса по именам, а не по порядковому номеру:
db = sqlite3.connect('data/mydb')
db.row_factory = sqlite3.Row
cursor = db.cursor()
cursor.execute('''SELECT name, email, phone FROM users''')
for row in cursor:
# row['name'] returns the name column in the query, row['email'] returns email column.
print('{0} : {1}, {2}'.format(row['name'], row['email'], row['phone']))
db.close()
import cx_Oracle
...
class Test(object):
def __init__(self, codeface, dismiss, nameface, datebir, login, datecas):
self.codeface = codeface
self.dismiss = dismiss
self.nameface = nameface
if datebir is None:
self.datebir = ''
else:
self.datebir = dtconv(datebir)
self.login = login
if datecas is None:
self.datecas = ''
else:
self.datecas = dtconv(datecas)
...
sql_users = """select a.codeface, a.dismiss, a.nameface, a.datebir, a.login_name_user, e.datecas
from kadry.face a, kadry.execution e
where a.codeface = e.codeface"""
cursor.execute(sql_users)
cursor.rowfactory = Test
...
for row in cursor:
print(row.codeface, row.nameface)
...