如果是fetchone,有没有类似的简写?

初学Python,菜鸟一枚

看到Python中的fetchall可以简写成如下方式:

infos = [(dict(name=row[1], sex=row[2],age=row[3]) for row in cur.fetchall())]

错误信息补充

http://img3.mukewang.com/643d22d800011b0710120128.jpg

当年话下
浏览 87回答 2
2回答

30秒到达战场

首先这个问题写的不是很清楚,这个fetchall/fetchone应该是sqlite模块的操作,而不是所谓的python中:-)。然后fetchall/fetchone的差异仅仅是一个获取所有记录,一个获取单条记录,所以这两种没有什么区别,这里的写法也是一致的,BTW这个完全可以自己测试下=====================因为fetchall返回的是这样的格式([a,b,c],[e,f,g],[g,i,j])所以你使用for row in cur.fetchall()可以取到[a,b,c]和[e,f,g]和[h,i,j]而fetchone得到的是(a,b,c)所以要得到这样的效果可以,注意最后一个,:[dict(name = row[0],...) for row in [cur.fetchone(),]]

侃侃无极

fetchone()返回的tuple为单独一行结果集,对其迭代相当于在遍历一行中的各列一般只在处理确定只有一行数据的情景下用多行的情况,还是用fetchall,如果非要用,大概这样rs = []while True:    r = cur.fetchone()    if not r:        break     d = dict(zip(('a', 'b'), r))     rs.append(d)很丑陋,对不对
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

MySQL
Python