如何避免TypeError:' float'对象不可订阅

时间:2017-05-22 13:50:48

标签: python-3.x sqlite

我目前收到错误TypeError:' float' object不是可订阅的,因为我使用%除以浮点数。这是我的代码:

def displayBalance(name,ID):
    with sqlite3.connect("ATM.db") as db:
        cursor = db.cursor()
        cursor.execute("select Balance from Atm where CustomerID=?",(ID,))
        balance = cursor.fetchone()

        newBalance = int(balance[0][0]) % 10
        print(newBalance)

现在,我正在尝试使用%divide按钮和我为该用户存储的余额。数量显然是一个实数或浮点数,但我无法弄清楚如何绕过这个TypeError。有任何想法吗?

1 个答案:

答案 0 :(得分:1)

balance = cursor.fetchone()

返回带有请求值的tuple。在您的情况下,您要求提供1个值,因此balance是包含1个唯一值的元组,使用[0]进行访问:

newBalance = int(balance[0]) % 10

其他python尝试"下标"价值(即通过索引访问),这是无效的。

或者,您可以直接解压缩您的值:

    (balance,) = cursor.fetchone()

然后:

    newBalance = int(balance) % 10