आप कर्सर की rowfactory
. को ओवरराइड कर सकते हैं तरीका। हर बार जब आप क्वेरी निष्पादित करेंगे तो आपको ऐसा करने की आवश्यकता होगी।
यहां मानक क्वेरी, एक टपल के परिणाम दिए गए हैं।
curs.execute('select * from foo')
curs.fetchone()
(33, 'blue')
नामित टपल लौटाना:
def makeNamedTupleFactory(cursor):
columnNames = [d[0].lower() for d in cursor.description]
import collections
Row = collections.namedtuple('Row', columnNames)
return Row
curs.rowfactory = makeNamedTupleFactory(curs)
curs.fetchone()
Row(x=33, y='blue')
एक शब्दकोश लौटाना:
def makeDictFactory(cursor):
columnNames = [d[0] for d in cursor.description]
def createRow(*args):
return dict(zip(columnNames, args))
return createRow
curs.rowfactory = makeDictFactory(curs)
curs.fetchone()
{'Y': 'brown', 'X': 1}
Amaury Forgeot d'Arc को श्रेय:http://sourceforge.net/p/cx-oracle/mailman/message/27145597