cx_oracle rowfactory,python – cx_Oracle:如何将每行作为字典接收?

您可以覆盖游标的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}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值