Python Sqlite3以字典形式返回查询结果的实现方法

游标获得数据库返回的数据集后,习惯了通过字段名读取字段的值,例如ADODB中recordset 用 rs("字段名") 或者 rs(i) 都是支持的。

但Sqlite3居然不支持。

查得:sqlite3本身并没有原生提供字典形式的游标,(adodb、pymysql等其他库有)

 

1

cursor = conn.cursor(pymysql.cursors.DictCursor)

但官方文档里已经有预留了相应的实现方案。

1

2

3

4

5

def dict_factory(cursor, row):

  d = {}

  for idx, col in enumerate(cursor.description):

    d[col[0]] = row[idx]

  return d

使用这个函数代替conn.raw_factory属性即可。

1

2

3

4

5

con = sqlite3.connect(":memory:") #打开在内存里的数据库

con.row_factory = dict_factory

cur = con.cursor()

cur.execute("select 1 as a")

print cur.fetchone()["a"]

官方文档链接

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值