需要 %d 格式,而不是 tkinter python 到 mysql 数据库中的 str 错误

Posted

技术标签:

【中文标题】需要 %d 格式,而不是 tkinter python 到 mysql 数据库中的 str 错误【英文标题】:%d format is required not str error in tkinter python to mysql database 【发布时间】:2021-01-27 14:13:12 【问题描述】:

我的条目小部件

 e2 = Entry(f, width=20)
        e2.place(x=280,y=120)

我把它改成了int类型

 def add_data():
    roll=int(e2.get())

我将数据插入 mysql 的查询

 cursor.execute('insert into first_year( name,roll_number,phone_no, MATH,English,science) values(%s,%d,%s,%s,%s,%s)',(name, roll, phone_no, math, Eng, sci))

错误

%d format: a number is required, not str

【问题讨论】:

您的add_data 不会返回或更改任何内容。您可能想了解更多关于 variable scope 的信息。 我的查询和 roll=int(e2.get()) 在同一个函数中 只需将 %d 更改为 %s 【参考方案1】:

只需将 %d 更改为 %s(即使是数字),因为占位符不是常规 Python,因为您可以红色 here

cursor.execute('''insert into first_year( name,roll_number,phone_no,
                MATH,English,science) values(%s,%s,%s,%s,%s,%s)''',
                (name, roll, phone_no, math, Eng, sci))

【讨论】:

不会让用户也输入字符串等等让我试试

以上是关于需要 %d 格式,而不是 tkinter python 到 mysql 数据库中的 str 错误的主要内容,如果未能解决你的问题,请参考以下文章

类型错误:%d 格式:需要一个数字,而不是 Dash

打印字符串时出错:%d 格式:需要数字,而不是 str

Python:Tkinter:为啥是 root.mainloop() 而不是 app.mainloop()

Python/Tkinter:级联菜单锚定在右侧而不是左侧

为啥使用 StringVar 而不是 IntVar 时 Tkinter 的单选按钮都开始选中?

如何确保将 Tkinter 表单中的值输入 MySQL 表而不是收到错误消息?