提问者:小点点

类型错误:只能将str(而不是“int”)连接到str


大家好,日安。

我对此有些疑问,这让我很挣扎。

关于“只能将str(而不是“int”)连接到str”的错误,我不知道如何修复它。我知道这是一个愚蠢的问题,但有人能帮我吗?

这是我的代码:

在这段代码中这是输入

l1 = tk.Label(window, text= "ID",  font=("Bahnschrift",15))
l1.grid(column = 1, row=7)
t4 = tk.Entry(window, width=16, bd=3, bg="light blue")
t4.grid(column=2, row=7)

这是注册到数据库的代码:

def寄存器():

if (t1.get()==""  or t2.get()=="" or t3.get()=="" or t4.get()==""):
    messagebox.showinfo("Result","Please Complete the Provided Details!")

else:
    databases = mysql.connector.connect(
    host ="localhost",
    user = "userdata",
    password = "",
    database = "facerecog"
    )

    cursors = databases.cursor()
    cursors.execute("SELECT * from record")
    result = cursors.fetchall()

    id= t4.get()+str()
    for x in result:

        id += 1

        sql = "INSERT INTO record(ids, names,course_year,positions) values(%s ,%s ,%s , %s)"
        val = (id, t1.get(), t2.get(), t3.get())
        cursors.execute(sql,val)
        databases.commit()

但它使错误,表明这一点:

文件"c:/用户/So_Low/桌面/final_recog/Recog.py",第77行,在寄存器id=1打字错误:只能连接str(不是"int")到str

不知道如何修理它,有人能帮我吗?

先谢谢你


共2个答案

匿名用户

将id=t4.get()str()替换为id=t4.get()。如果你需要在某个必须是字符串的地方使用id,那么使用str()函数进行强制转换

匿名用户

您的id必须是str,而不是int

您可以通过在添加时转换id来解决此问题:

>>> id = "1"
>>> id = int(id) + 1
>>> id
2