我有一个查询数据库并返回如下值的函数
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'>
我怎么只获取整数值
答案 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