Класс Row
Класс Row представляет собой одну строку
из результата выполнения SQL-запроса. Объект
Row ведёт себя как именованный кортеж:
к его значениям можно обращаться по имени
колонки, по индексу или через атрибуты.
Экземпляры Row возвращаются при
итерации по объекту Result, который
получается после вызова метода execute.
Синтаксис
row[column_name]
row[column_index]
row.column_name
Пример
Давайте выполним запрос и получим объект
Row из результата:
from sqlalchemy import create_engine, text
engine = create_engine('sqlite:///:memory:')
with engine.connect() as conn:
conn.execute(text('CREATE TABLE articles (id INTEGER, title TEXT)'))
conn.execute(text("INSERT INTO articles VALUES (1, 'article')"))
res = conn.execute(text('SELECT id, title FROM articles'))
row = res.first()
print(row)
Результат выполнения кода:
(1, 'article')
Пример
Давайте обратимся к значениям строки по имени колонки через квадратные скобки:
from sqlalchemy import create_engine, text
engine = create_engine('sqlite:///:memory:')
with engine.connect() as conn:
conn.execute(text('CREATE TABLE articles (id INTEGER, title TEXT)'))
conn.execute(text("INSERT INTO articles VALUES (1, 'article')"))
res = conn.execute(text('SELECT id, title FROM articles'))
row = res.first()
print(row['id'])
print(row['title'])
Результат выполнения кода:
1
'article'
Пример
Давайте обратимся к значениям строки по атрибутам и по индексу:
from sqlalchemy import create_engine, text
engine = create_engine('sqlite:///:memory:')
with engine.connect() as conn:
conn.execute(text('CREATE TABLE articles (id INTEGER, title TEXT)'))
conn.execute(text("INSERT INTO articles VALUES (1, 'article')"))
res = conn.execute(text('SELECT id, title FROM articles'))
row = res.first()
print(row.id, row.title)
print(row[0], row[1])
Результат выполнения кода:
1 article
1 article