如何从Cursor执行结果Python中获取值

时间:2012-11-06 14:50:41

标签: python sqlite cursor

我有一个sqllite数据库,其中创建的字段dad_mmsi没有类型:

c.execute('''CREATE TABLE IF NOT EXISTS AIS_anoniem
             (dad_mmsi, dad_navstatus......)'''')

当我获取最高结果时;

c.execute('SELECT DISTINCT dad_mmsi FROM AIS')
print c.fetchall()[0]

打印:

(u'456000001',)

这与我输入的内容不同,因为它被转换为元组。

编辑:因为它是一个元组,我需要访问我想要的值的索引:

 print c.fetchall()[0][0] == '456000001'

给了我:

 'true' 

1 个答案:

答案 0 :(得分:2)

fetchall返回行列表,每行是列的列表(元组)。 所以这是正确的。

您使用DISTINCT的查询未返回最高结果,它会返回所有唯一值。 要仅返回第一个结果,请使用

SELECT dad_mmsi FROM AIS LIMIT 1

(但你应该添加一个ORDER BY子句来控制你得到的记录。

要仅返回一行,请不要使用fetchall,而应使用fetchone