Получить все значения из таблицы sqlite для определенного столбца, имя которого задается с помощью пользовательского ввода - PullRequest
0 голосов
/ 06 июня 2019

Когда я жестко кодирую, из какого столбца я хочу получить все значения, он работает нормально, но при использовании переменной, переданной пользователем, он просто заполняет список тем, что вводится пользователем.

Это печатает то, что я хочу (жестко закодированное имя столбца)

@client.command(aliases=['move'])
async def search_by_move(ctx, *, move):
move_data = [data[0] for data in cursor.execute("SELECT Nair FROM ssbuData")]
    print(move_data)

При использовании ввода в качестве имени столбца, он просто заполняет список вводом в каждом индексе

@client.command(aliases=['move'])
async def search_by_move(ctx, *, move):
move_data = [data[0] for data in cursor.execute("SELECT (?) FROM ssbuData", (move,))]
    print(move_data)

Результаты:

['Наир', 'Наир', 'Наир', 'Наир', 'Наир', 'Наир', 'Наир', 'Наир' ...]

Желаемые результаты (те, которые я получаю с жестко закодированным именем столбца:

['45,0', '38 .0 ', '38 .0', '45 .0 ', '45 .0', '44 .0 ','54 .0 ', '38 .0' ...]

1 Ответ

0 голосов
/ 06 июня 2019

Закончилось поиском решения.Я сделал это, чтобы вставить переменную, и она работает.Я не совсем уверен, почему это работает, а другой метод использования переменной не подходит для этого конкретного сценария, поэтому, если кто-то наткнется на это, сможет объяснить, что было бы здорово!Используйте это:

move_data = [data[0] for data in cursor.execute("SELECT {} FROM ssbuData".format(movestr))]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...