在python中将元组转换为int

时间:2018-12-13 19:40:59

标签: python sql type-conversion

我有一个查询,该查询返回一个元组,并且我试图将第一个值从该元组转换为一个int,但它总是给我这个错误: TypeError: int() argument must be a string, a bytes-like object or a number, not 'tuple'

我不明白为什么要这么做,因为返回的值看起来像这样:[(25,)]

代码如下:

cursor.execute("SELECT temp FROM temperatures WHERE datetimetest = ?", [datenow])
    currentTemp = cursor.fetchall()
    print(currentTemp) # this gives me [(25,)]
    convertedTemp = int(currentTemp[0])

2 个答案:

答案 0 :(得分:1)

因为[(25,)]实际上是列表内元组内的一个int,所以获取int的正确调用将是currentTemp[0][0]

答案 1 :(得分: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]