gpt4 book ai didi

python - sqlite3.OperationalError : near “)” : syntax error in tkinter Python

转载 作者:行者123 更新时间:2023-12-03 08:24:46 25 4
gpt4 key购买 nike

我正在尝试在tkinter应用程序中的python中使用sqlite创建数据库-我正在遵循以前使用过的教程并正确输入文本,因为他有,但是我一直收到我无法解决的错误-代码如下。
错误是:c.execute(“”“CREATE TABLE jobdata(
sqlite3.OperationalError:““附近”:语法错误

import tkinter as tk 
from tkinter import ttk
from tkinter import *
import sqlite3


LARGEFONT =("Verdana", 35)


conn = sqlite3.connect('jobtracker.db')

c = conn.cursor()

c.execute("""CREATE TABLE jobdata (
company text,
role text,
industry text,
location text,
wage integer,
start_date integer,
)""")

conn.commit()

conn.close()

我将其放置在为GUI构建的类之上的代码顶部-如果需要,我可以发布其余代码。我已经遍历了很多次语法,发现它与本教程的编写方法没有什么不同。任何帮助将不胜感激!
谢谢!

最佳答案

解决错误
表定义中的最后一个字段后面有一个逗号,这很可能导致错误。start_date integer,应该更新为start_date integer
减少 future 的错误
如果要多次运行包含该脚本的文件,我还建议您在语句中添加IF NOT EXISTS条件。如果您设法创建表,然后尝试运行将创建具有相同名称的表的语句,则很可能会收到以下错误sqlite3.OperationalError: table jobdata already exists
建议的解决方案#1

# Your existing code as is before CREATE TABLE statement 
c.execute("""CREATE TABLE IF NOT EXISTS jobdata (
company text,
role text,
industry text,
location text,
wage integer,
start_date integer
);""")
# Your existing code as is after CREATE TABLE statement
内容管理员
在使用 sqlite3连接( see docs)执行数据库事务时,可能值得考虑使用上下文管理器。
我发现它们在可读性和安全性方面很有用,它们会自动提交/回滚事务-意味着不必担心运行 conn.commit()
显然,在某些情况下,您可能不想使用上下文管理器,但是,这似乎是使用上下文管理器的不错选择,只是认为如果您不知道此功能,可以与您分享。
使用上下文管理器处理以下数据库事务的原始问题的代码示例(包括对上述问题的直接响应所做的更改):
拟议的解决方案2
import tkinter as tk 
from tkinter import ttk
from tkinter import *
import sqlite3


LARGEFONT =("Verdana", 35)


conn = sqlite3.connect('jobtracker.db')

with conn:
conn.execute("""CREATE TABLE IF NOT EXISTS jobdata (
company text,
role text,
industry text,
location text,
wage integer,
start_date integer
);""")
conn.close()

关于python - sqlite3.OperationalError : near “)” : syntax error in tkinter Python,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63226043/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com