栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

从Python的sqlite3获取字段值的列表,而不是表示行的元组

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

从Python的sqlite3获取字段值的列表,而不是表示行的元组

sqlite3.Connection
有一个
row_factory
属性。

该文档指出:

您可以将此属性更改为可调用的可调用对象,该对象将光标和原始行作为元组接受,并将返回实际结果行。这样,您可以实现更高级的返回结果的方式,例如返回还可以通过名称访问列的对象。

要从中返回单个值列表

SELECt
,例如
id
,您可以分配一个lambda,
row_factory
以返回每行中的第一个索引值;例如:

import sqlite3 as dbconn = db.connect('my.db')conn.row_factory = lambda cursor, row: row[0]c = conn.cursor()ids = c.execute('SELECT id FROM users').fetchall()

这样会产生类似:

[1, 2, 3, 4, 5, 6] # etc.

您也可以

row_factory
直接在光标对象本身上设置。实际上,如果 创建游标 之前
row_factory
在连接上设置on ,则
必须 在游标上设置on:
row_factory

c = conn.cursor()c.row_factory = lambda cursor, row: {'foo': row[0]}

您可以

row_factory
在游标对象的生存期内随时重新定义,并且可以 取消设置 行工厂
None
以返回基于默认元组的结果:

c.row_factory = Nonec.execute('SELECt id FROM users').fetchall() # [(1,), (2,), (3,)] etc.


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/653628.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号