在python中将元组转换为int
我有一个返回元组的查询,我试图将该元组的第一个值转换为int,但它总是给我以下错误:在python中将元组转换为int,python,sql,type-conversion,Python,Sql,Type Conversion,我有一个返回元组的查询,我试图将该元组的第一个值转换为int,但它总是给我以下错误: TypeError:int()参数必须是字符串、类似字节的对象或数字,而不是“tuple” 我不明白它为什么这样做,因为返回的值如下:[(25,)] 代码如下: cursor.execute("SELECT temp FROM temperatures WHERE datetimetest = ?", [datenow]) currentTemp = cursor.fetchall() prin
TypeError:int()参数必须是字符串、类似字节的对象或数字,而不是“tuple”
我不明白它为什么这样做,因为返回的值如下:[(25,)]
代码如下:
cursor.execute("SELECT temp FROM temperatures WHERE datetimetest = ?", [datenow])
currentTemp = cursor.fetchall()
print(currentTemp) # this gives me [(25,)]
convertedTemp = int(currentTemp[0])
因为
[(25,)]
实际上是列表中元组中的一个int-因此获取int的正确调用应该是currentTemp[0][0]
您可以将元组列表转换为整数列表
query = "some query that gets list of integers"
cursor.execute(query)
values = cursor.fetchall()
# values now looks like : [(1,), (2,), (3,)]
i = 0
for v in values:
values[i] = v[0]
i += 1
# values now looks like : [1, 2, 3]
[(25,)]
是一个包含int的元组(1个长度元组)的列表。不要尝试转换,只需使用var[0][0]
访问它。哦,现在我明白了!我对python有点陌生,所以我不知道:(谢谢你的帮助!