Метод _asdict
Метод _asdict класса Row возвращает
представление строки результата в виде словаря
dict. Ключами словаря становятся имена
столбцов выборки, а значениями - соответствующие
им значения из строки. Метод не принимает
параметров и всегда возвращает новый объект
словаря. Это удобно, когда нужно получить данные
строки в привычном формате ключ-значение, а не
обращаться к полям через атрибуты или индексы.
Синтаксис
row._asdict()
Пример
Давайте создадим таблицу articles, вставим
одну строку и получим ее в виде словаря через
метод _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, title TEXT)'))
conn.execute(text("INSERT INTO articles (id, title) VALUES (1, 'article')"))
res = conn.execute(text('SELECT id, title FROM articles'))
row = res.fetchone()
print(row._asdict())
Результат выполнения кода:
{'id': 1, 'title': 'article'}
Пример
Давайте получим несколько строк и преобразуем каждую из них в словарь:
Результат выполнения кода:
{'id': 1, 'title': 'article'}
{'id': 2, 'title': 'user'}
Пример
Давайте убедимся, что метод _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, title TEXT)'))
conn.execute(text("INSERT INTO articles (id, title) VALUES (1, 'article')"))
res = conn.execute(text('SELECT id, title FROM articles'))
row = res.fetchone()
data = row._asdict()
print(type(data))
print(data['id'])
print(data['title'])
Результат выполнения кода:
<class 'dict'>
1
article