SQLAlchemy 1.4 के लिए अद्यतन उत्तर:
संस्करण 1.4 ने पुराने engine.execute() . को हटा दिया है पैटर्न और तरीका बदल दिया .execute() आंतरिक रूप से कार्य करता है। .execute() अब एक CursorResult
लौटाता है ऑब्जेक्ट के साथ .mappings()ए> विधि:
import sqlalchemy as sa
# …
with engine.begin() as conn:
qry = sa.text("SELECT FirstName, LastName FROM clients WHERE ID < 3")
resultset = conn.execute(qry)
results_as_dict = resultset.mappings().all()
pprint(results_as_dict)
"""
[{'FirstName': 'Gord', 'LastName': 'Thompson'},
{'FirstName': 'Bob', 'LastName': 'Loblaw'}]
"""
(SQLAlchemy 1.3 के लिए पिछला उत्तर)
यदि आप engine.execute . का उपयोग करते हैं तो SQLAlchemy आपके लिए यह पहले से ही करता है raw_connection() . के बजाय . engine.execute . के साथ , fetchone एक SQLAlchemy लौटाएगा Row वस्तु और fetchall एक list लौटाएगा का Row वस्तुओं। Row ऑब्जेक्ट्स को कुंजी द्वारा एक्सेस किया जा सकता है, जैसे dict :
sql = "SELECT FirstName, LastName FROM clients WHERE ID = 1"
result = engine.execute(sql).fetchone()
print(type(result)) # <class 'sqlalchemy.engine.result.Row'>
print(result['FirstName']) # Gord
यदि आपको एक सच्चे dict की आवश्यकता है ऑब्जेक्ट तो आप इसे केवल रूपांतरित कर सकते हैं:
my_dict = dict(result)
print(my_dict) # {'FirstName': 'Gord', 'LastName': 'Thompson'}