Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用SQL查询插入数据的Python函数_Python_Sql_Sqlite - Fatal编程技术网

使用SQL查询插入数据的Python函数

使用SQL查询插入数据的Python函数,python,sql,sqlite,Python,Sql,Sqlite,虽然SQL语法似乎正确,但我得到了以下错误。请帮忙 def create_table(self, **kwargs): query = "CREATE TABLE IF NOT EXISTS {} (" comma = r', ' for key, value in kwargs.items(): if key != 'table_name': query = query + key + ' ' + value + comma

虽然SQL语法似乎正确,但我得到了以下错误。请帮忙

def create_table(self, **kwargs):
    query = "CREATE TABLE IF NOT EXISTS {} ("
    comma = r', '
    for key, value in kwargs.items():
        if key != 'table_name':
            query = query + key + ' ' + value + comma
    query = query.format(kwargs['table_name']).rstrip(' ,') + ")"
    print(query)
    return self.cursor.execute(query)

def insert_values(self, *args):
    query = r"INSERT INTO {} VALUES ("
    comma = r','
    for arg in args:
        if arg != args[0]:
            if type(arg) == str:
                query = query + "'" + arg + "'" + comma
            else:
                query = query + str(arg) + comma
    query = query.format(args[0]).rstrip(" ,") + ")"
    print(query)
    return self.cursor.execute(query)

db.create_table(table_name='store', item='TEXT', quantity='INTEGER', price='REAL')
db.insert_values('store', 'wine glass', 8, 10.5)
输出

# CREATE TABLE IF NOT EXISTS store (item TEXT, quantity INTEGER, price REAL)

# INSERT INTO store VALUES ('wine glass',8,10.5)
sqlite3.OperationalError:表存储区有1列,但有3个值 供应

解决了的 冻糕你是对的。 每次运行代码时,我都会删除我的类创建的本地数据库,并重新启动每个操作。方法是有效的,我只是没有看到实际的结果

完整代码如下:

确保
commit
任何操作或设置
autocommit=True
。这是完整的代码吗?错误信息相当清楚。表
store
是否可能已经存在,并且只有一列?然后,第一条语句
createtable IF NOT EXISTS
将无误运行,并且不执行任何操作,因为该表已经存在。