Re: [cx-oracle-users] looking for a quicker / more elegant way to form objects with attributes out
Brought to you by:
atuining
From: Amaury F. d'A. <ama...@gm...> - 2011-03-03 12:21:55
|
Hi, 2011/3/3 Massa, Harald Armin <ch...@gh...>: > To be able to return an cx_Oracle result set as a "set of records" > from a function (which is similiar to the "table returning functions" > within Oracle), the columns of the record need to be attributes of an > object. Actually I do: I'd do it with a "row factory", here are two examples, one which builds a dictionary, the other one builds a "named tuple" and is very similar to sqlite3.Row. def makeDictFactory(cursor): columnNames = [d[0] for d in cursor.description] def createRow(*args): return dict(zip(columnNames, args)) return createRow def makeNamedTupleFactory(cursor): columnNames = [d[0].lower() for d in cursor.description] import collections Row = collections.namedtuple('Row', columnNames) return Row Then, just after the cs.execute() call, you can add: cs.rowfactory = makeDictFactory(cs) or cs.rowfactory = makeNamedTupleFactory(cs) -- Amaury Forgeot d'Arc |