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

Класс MappingResult

Класс MappingResult представляет собой результат выполнения запроса, возвращаемый методом mappings. Он позволяет обращаться к столбцам результата по именам, как к элементам словаря. Класс поддерживает итерацию по строкам, индексацию и методы для массового извлечения данных.

Синтаксис

res = connection.execute(statement).mappings()

Пример

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

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 1')")) conn.execute(text("INSERT INTO articles VALUES (2, 'article 2')")) res = conn.execute(text('SELECT * FROM articles')).mappings() for row in res: print(row['id'], row['title'])

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

1 article 1 2 article 2

Пример

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

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 1')")) conn.execute(text("INSERT INTO articles VALUES (2, 'article 2')")) res = conn.execute(text('SELECT * FROM articles')).mappings() rows = res.all() print(rows)

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

[(1, 'article 1'), (2, 'article 2')]

Пример

Давайте получим первую строку результата методом first:

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 1')")) conn.execute(text("INSERT INTO articles VALUES (2, 'article 2')")) res = conn.execute(text('SELECT * FROM articles')).mappings() row = res.first() print(row['title'])

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

"article 1"

Пример

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

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, status TEXT)')) conn.execute(text("INSERT INTO articles VALUES (1, 'article 1', 'published')")) conn.execute(text("INSERT INTO articles VALUES (2, 'article 2', 'draft')")) res = conn.execute(text('SELECT id, title, status FROM articles')).mappings() for row in res: print(dict(row))

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

{'id': 1, 'title': 'article 1', 'status': 'published'} {'id': 2, 'title': 'article 2', 'status': 'draft'}

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

  • функцию create_engine,
    которая создает движок базы данных
  • функцию make_url,
    которая разбирает строку URL подключения
  • функцию engine_from_config,
    которая создает движок из словаря настроек
  • класс QueuePool,
    который управляет пулом соединений
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить