Python SQlite选择查询返回列表而不是整数

时间:2018-07-09 08:15:26

标签: python sqlite

我有一个查询数据库并返回如下值的函数

def find_dase(Plants):
    conn = sqlite3.connect("dexro.db")
    cursor = conn.cursor()
    cursor.execute(("SELECT Years FROM Plants_no WHERE Plant=?"),(Plants,))
    data = cursor.fetchall()
    conn.close()
    return data

执行此操作时,我得到的是列表而不是值

print(find_dase('dex'))
print(type(find_dase('dex')))

输出:

[('10',)]      
<class 'list'>

我怎么只获取整数值

1 个答案:

答案 0 :(得分:1)

cursor.fetchall()以列表的形式获取所有行。在这种情况下,该行只有一个值Year,因此列出了一个值元组。

解决方案:

使用.fetchone()tuple的形式仅获取一行并对其进行索引:

def find_dase(Plants):
    conn = sqlite3.connect("dexro.db")
    cursor = conn.cursor()
    cursor.execute(("SELECT Years FROM Plants_no WHERE Plant=?"),(Plants,))
    data = cursor.fetchone()[0]  # THIS IS CHANGED
    conn.close()
    return data