Python 3.x 使用Python3/sqlite3创建列数未知的表
我有一个Python类:Python 3.x 使用Python3/sqlite3创建列数未知的表,python-3.x,sqlite,class,Python 3.x,Sqlite,Class,我有一个Python类: class Database: conn = sqlite3.connect(‘database.db’) c = conn.cursor() def __init__(self): pass 在这个类中,我将使用多个方法来处理我的数据库类,例如: def create_table(self, table_name, *args): pass def add_user(self): pass def rem
class Database:
conn = sqlite3.connect(‘database.db’)
c = conn.cursor()
def __init__(self):
pass
在这个类中,我将使用多个方法来处理我的数据库类,例如:
def create_table(self, table_name, *args):
pass
def add_user(self):
pass
def remove_user(self):
pass
等等。
我的问题是:如果我不确定将有多少列,我如何在“create_table”函数中使用*args。例如,我知道我将有first、last和pay列,我的函数将如下所示:
def create_table(self, table_name, *args):
c.execute("""CREATE TABLE ‘{}’ (‘{}’ text, ‘{}’ text, ‘{}’
integer).format(self.table_name, self.first, self.last, self.pay)”””)
c.commit()
所以,如果我想创建表,我可以这样做:
Item = Database()
Item.create_table('employees', ‘First_name’, ’Last_name’, 100000)
但是如果我不知道我会有多少列呢?
谢谢
打印(创建表格('employees','first','text','last','text','pay','integer'))不确定列的变量有多大;或者时间框架。似乎您已经有了一组基本的定义,然后,会弹出一个新的列。所以假设你的表是从上面提到的4开始的 我们首先运行create表,然后在文件上循环,一边更新,如果我们找到一个新列,我们运行altertable tableName ADD column_name数据类型,然后根据键进行更新 或者,您可以按照qafrombayarea的建议,从开始到完成,然后立即创建表。我们的json文件没有那么严格
def create_table(self, tableName, *args,):
columns = ''
for i in args:
columns += i
columns += ' '
message = '"""CREATE TABLE {} ({})"""'.format(tableName, columns[:-1])
return message