Вставьте много значений в таблицу одновременно - PullRequest
1 голос
/ 05 мая 2019

Так что, в принципе, у меня есть проект для школы, и он требует, чтобы я написал программу, которая поможет двум совместимым людям встретиться. Они должны ответить на разные вопросы, тогда программа сравнит результаты. Итак, у меня есть 21 вопрос, который я хочу задать, и я пытаюсь вставить 21 ответ в таблицу в моей базе данных, но она не работает. С 9 вопросами, например, он работал отлично, вот код:

import sqlite3


connexion = sqlite3.connect("Test Numero 106")
cur= connexion.cursor()


cur.execute('''CREATE TABLE IF NOT EXISTS aaa(q1 TEXT, q2 TEXT, q3 TEXT, q4 TEXT, q5 TEXT, q6 TEXT, q7 TEXT, q8 TEXT, q9 TEXT, q10 TEXT, q11 TEXT, q12 TEXT, q13 TEXT, q14 TEXT, q15 TEXT, q16 TEXT, q17 TEXT, q18 TEXT, q19 TEXT, q20 TEXT, q21 TEXT);''')

ans=['A', ' A', ' A', ' A', ' A', ' A', ' A', ' A', ' A', ' A ', 'A', ' A', ' A', ' A', ' A', ' A', ' A', ' A', ' A', ' A','A']

if ans[1]=='A' and ans[2]=='A'and ans[3]=='A':
    cur.execute('''INSERT INTO aaa (q1,q2,q3,q4,q5,q6,q7,q8,q9,q10,q11,q12,q13,q14,q15,q16,q17,q18,q19,q20,q21) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)''', ans)


connexion.commit()

Список "ans" - это ответы, введенные определенным человеком, и я пытаюсь вставить их в определенную таблицу, но они не входят. Программное обеспечение, которое я использую "pyzo", не говорит мне, что в коде есть ошибка, но когда я хочу увидеть информацию в определенной таблице, она пуста.

1 Ответ

1 голос
/ 05 мая 2019

Python sqlite docs показывает, что второй аргумент команды execute должен быть кортежем. Можете ли вы попробовать это и посмотреть, работает ли это?

cur.execute('''INSERT INTO aaa (q1,q2,q3,q4,q5,q6,q7,q8,q9,q10,q11,q12,q13,q14,q15,q16,q17,q18,q19,q20,q21) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)''', tuple(ans))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...