用于创建表SQL查询的通用函数

时间:2017-03-06 12:30:57

标签: python sql sqlite

我需要一个可以在表中插入值的泛型函数。我怎么能用可变数量的参数做到这一点。

例如:

def create_table(self, tb_name, *args):
        sqlite3.connect(self.db_name).cursor().execute("DROP TABLE IF EXISTS users")
        sqlite3.connect(self.db_name).cursor().execute("CREATE TABLE users(*args[0], *args[1], ....*args[n])")
  1. * args [0]是' name' * args [1]是'密码'
  2. * args [0]是' name' * args [1]是'密码' * args [2]是'电子邮件'
  3. 功能必须兼顾两种方式。

    提前谢谢。

1 个答案:

答案 0 :(得分:0)

考虑join将列表中的所有项连接到一个语句中。以下假定所有 args TEXT类型:

def create_table(self, tb_name, *args):
    vars = " TEXT,".join(*args) + " TEXT"

    sqlite3.connect(self.db_name).cursor().execute("DROP TABLE IF EXISTS users")
    sqlite3.connect(self.db_name).cursor().execute("CREATE TABLE users ({})".format(vars))

# CREATE TABLE users (name TEXT, password TEXT)
# CREATE TABLE users (name TEXT, password TEXT, email TEXT)