我们可以使用 Python 脚本来创建注释吗?



我想在Python中使用SQLite3创建一个表。我有一套,例如

Set = set(['CY110', 'PH100', 'CY100', 'CS100', 'BE110'])

正常创建表条件的样板:

sql_create_table = """ CREATE TABLE IF NOT EXISTS marks (id integer PRIMARY KEY,name text NOT NULL, );"""

我遇到的问题是我需要像这样包含每个元素:

sql_create_table = """ CREATE TABLE IF NOT EXISTS marks (id integer PRIMARY KEY,name text NOT NULL,CY100 text,PH100 text,CS100 text,BE100 text);"""

我该怎么做?

可以使用生成器表达式并将输出与','联接,以生成所需的查询字符串:

sql_create_table = 'CREATE TABLE IF NOT EXISTS marks (id integer PRIMARY KEY,name text NOT NULL,' + ','.join('%s text' % c for c in Set)

使用示例输入,sql_create_table将变为:

CREATE TABLE IF NOT EXISTS marks (id integer PRIMARY KEY,name text NOT NULL,BE110 text,CS100 text,CY100 text,PH100 text,CY110 text

如果您只想格式化该集合中的字符串,则可以使用以下方法。还可以考虑名称Set以外的其他内容:

mySet = set(['CY110', 'PH100', 'CY100', 'CS100', 'BE110'])
mySet = list(mySet)  
sql_create_table = """ CREATE TABLE IF NOT EXISTS marks (id integer PRIMARY KEY,name text NOT NULL,{0} text,{1} text,{2} text,{3} text);""".format(mySet[0],mySet[1],mySet[2],mySet[3])
print(sql_create_table)

如果不转换为列表,则无法直接为集合编制索引以格式化字符串,因为集合未按此链接中所述进行排序

最新更新