python sqlite3. Executemany вводит слово в таблицу по буквам
Ситуация следующая. Я сделал простую таблицу, в которой есть два столбца - id и cat (category).
Пользователь вводит слово cat, после чего слово помещается в таблицу.
Проблема - слово помещается в таблице не целиком, а по буквам.
input_text = input()
first_word = re.findall(r'\w+', input_text)[0]
two_word = re.findall(r'\w+', input_text)[1]
if first_word == 'new':
if two_word == 'cat':
new_category = re.findall(r'\w+', input_text)[2]
cur.executemany("INSERT INTO category (cat) VALUES(?);", new_category)
print("Вы создали новую категорию - " + new_category)
И результат следующий:
Т.е. "new cat medicina" создает новую категорию. all cat - выводит все категории.
Как я ожидал, результат должен быть таким:
[(1, 'medicina')]
Надеюсь, я правильно разъяснил свой вопрос. Пожалуйста, помогите чем можете.
Ответы (1 шт):
Автор решения: hawr
→ Ссылка
Нашёл решение, хоть и через костыль. Раз программа считает new_category множеством букв, то я решил объеденить всё это с помощью join. И вместо executemany сделал execute.
new_category = re.findall(r'\w+', input_text)[2]
my_list = [''.join(new_category)]
cur.execute("INSERT INTO category (cat) VALUES ( ? );", my_list)
print("Вы создали новую категорию - " + new_category)
По итогу нужный результат:

