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'}