РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
67 of 711 menu

Атрибут _t класса Row

Атрибут _t класса Row возвращает внутренний кортеж значений строки результата. Этот атрибут представляет собой обычный Python-кортеж, содержащий все значения полей в порядке их следования в выборке. Атрибут не принимает параметров и доступен только для чтения. Его удобно использовать, когда нужно получить «сырые» данные строки без обращения к именам столбцов.

Синтаксис

row._t

Пример

Давайте создадим таблицу и получим строку результата, а затем обратимся к атрибуту _t:

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, text TEXT, status TEXT, num INTEGER)')) conn.execute(text("INSERT INTO articles VALUES (1, 'article', 'some text', 'draft', 10)")) res = conn.execute(text('SELECT id, title, status FROM articles')).fetchone() print(res._t)

Результат выполнения кода:

(1, 'article', 'draft')

Пример

Давайте убедимся, что атрибут _t возвращает именно кортеж, и распакуем его в отдельные переменные:

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, text TEXT, status TEXT, num INTEGER)')) conn.execute(text("INSERT INTO articles VALUES (1, 'article', 'some text', 'draft', 10)")) res = conn.execute(text('SELECT id, title, text, status, num FROM articles')).fetchone() print(type(res._t)) id_, title, text_, status, num = res._t print(title) print(num)

Результат выполнения кода:

<class 'tuple'> "article" 10

Пример

Давайте получим несколько строк и выведем их кортежи через атрибут _t:

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, text TEXT, status TEXT, num INTEGER)')) conn.execute(text("INSERT INTO articles VALUES (1, 'article', 'some text', 'draft', 10)")) conn.execute(text("INSERT INTO articles VALUES (2, 'user', 'another text', 'published', 20)")) res = conn.execute(text('SELECT id, title, status FROM articles ORDER BY id')).fetchall() for row in res: print(row._t)

Результат выполнения кода:

(1, 'article', 'draft') (2, 'user', 'published')

Смотрите также

  • класс Row,
    который представляет строку результата
  • метод _asdict,
    который возвращает словарь значений строки
  • атрибут _mapping,
    который предоставляет доступ к значениям по именам
  • атрибут _fields,
    который содержит имена полей строки
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить