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

Атрибут _fields

Атрибут _fields класса Row возвращает кортеж строк с именами полей (колонок), которые содержатся в данной строке результата. Этот атрибут удобно использовать, когда нужно программно узнать структуру результата запроса, например, для вывода заголовков таблицы или преобразования строки в словарь. Атрибут доступен как у самого объекта строки, так и через класс Row.

Синтаксис

row._fields

Пример

Давайте выполним простой запрос и посмотрим, что вернет атрибут _fields:

from sqlalchemy import create_engine, text engine = create_engine('sqlite:///:memory:') with engine.connect() as conn: res = conn.execute(text('SELECT 1 AS num, "article" AS title')) row = res.first() print(row._fields)

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

('num', 'title')

Пример

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

from sqlalchemy import create_engine, text engine = create_engine('sqlite:///:memory:') with engine.connect() as conn: conn.execute(text( 'CREATE TABLE articles (' 'id INTEGER PRIMARY KEY, ' 'title TEXT, ' 'status TEXT)' )) conn.execute(text( "INSERT INTO articles (id, title, status) " "VALUES (1, 'article', 'published')" )) conn.commit() res = conn.execute(text('SELECT * FROM articles')) row = res.first() print(row._fields)

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

('id', 'title', 'status')

Пример

Давайте используем _fields вместе с _asdict, чтобы получить словарь строки:

from sqlalchemy import create_engine, text engine = create_engine('sqlite:///:memory:') with engine.connect() as conn: conn.execute(text( 'CREATE TABLE articles (' 'id INTEGER PRIMARY KEY, ' 'title TEXT, ' 'num INTEGER)' )) conn.execute(text( "INSERT INTO articles (id, title, num) " "VALUES (1, 'article', 10)" )) conn.commit() res = conn.execute(text('SELECT * FROM articles')) row = res.first() for field in row._fields: print(field, '=', row._asdict()[field])

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

id = 1 title = article num = 10

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

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