Можем ли мы использовать скрипт Python для создания комментария? - PullRequest
0 голосов
/ 01 октября 2018

Я хочу создать таблицу с использованием SQLite3 в Python.У меня есть набор, такой как

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);"""

Как я могу это сделать?

Ответы [ 2 ]

0 голосов
/ 01 октября 2018

Вы можете использовать выражение генератора и объединить вывод с ',', чтобы получить нужную строку запроса:

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
0 голосов
/ 01 октября 2018

Если вы просто хотите отформатировать строку из этого набора, вы можете использовать следующее.Также рассмотрите имя, отличное от 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)

Вы не можете индексировать набор напрямую для форматирования строки без преобразования в список, поскольку наборы не упорядочены, как описано в этой ссылке

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...