Получить значение столбцов по имени при запросе к базе.
Он поддерживает доступ к результату запроса как к
словарю, где ключ это имя столбца. Так же поддерживает обращение к столбцу по индексу, итерацию по строкам запроса, проверку на равенство и
встроенную функцию len()
для подсчета количества строк запроса.
Если два объекта подряд имеют одинаковые столбцы, а их элементы равны, то эти объекты считаются равными.
Метод объекта sqlite3.Row
.
cursor.keys()
:
Метод
cursor.keys()
возвращает список имен столбцов. Сразу после запроса, это первый элемент каждого
кортежа в
Cursor.description
.
Инициализируем базу и вставим таблицу,:
conn = sqlite3.connect(":memory:")
c = conn.cursor()
c.execute('''create table stocks
(date text, trans text, symbol text,
qty real, price real)''')
c.execute("""insert into stocks
values ('2006-01-05','BUY','RHAT',100,35.14)""")
conn.commit()
c.close()
Теперь подключим класс sqlite3.Row
:
>>> conn.row_factory = sqlite3.Row
>>> cursor = conn.cursor()
>>> cursor.execute('select * from stocks')
# <sqlite3.Cursor object at 0x7f4e7dd8fa80>
>>> r = cursor.fetchone()
>>> type(r)
# <class 'sqlite3.Row'>
>>> tuple(r)
# ('2006-01-05', 'BUY', 'RHAT', 100.0, 35.14)
>>> len(r)
# 5
>>> r[2]
# 'RHAT'
>>> r.keys()
# ['date', 'trans', 'symbol', 'qty', 'price']
>>> r['qty']
# 100.0
>>> for member in r:
... print(member)
...
# 2006-01-05
# BUY
# RHAT
# 100.0
# 35.14