KeyError. Ошибка при добавлении значения в базу данных

Пытаюсь добавить значение в таблицу. При обычной последовательности действий: вопрос - ответ, ответ записывается успешно, ошибок не возникает, но если я пытаюсь сделать: вопрос - форматирование ответа - записать верный ответ, то возникает ошибка.

Вставляю код бота пайтона:


    @dp.callback_query_handler(text='down_time', state=None)
    async def down_tm_cb(call: CallbackData, state=None):
        if call.data == 'down_time':
            await bot.send_message(chat_id=call.from_user.id, text="Запиши время отбоя: ") #задаю вопрос
            await call.message.delete()
            await ProfileStateGroup.down_time.set()
    
    @dp.message_handler(state=ProfileStateGroup.down_time)
    async def time_down_st(message: types.Message, state: FSMContext):
        async with state.proxy() as data:
            try:
                data['down_time'] = time.strptime(message.text, "%H:%M") #ставлю формат для ответа
                await basa.cr_dw_tm(state) #сохраняю ответ, если формат
            except ValueError:
                await message.reply("Время некорректно! Введи еще раз: ")
            else:
                await message.reply('Отлично, я запомнил время отбоя! Что-то еще?', reply_markup=inkb)
    #сюда тоже пробовала добавить добавление в бд, ошибка та же
                await state.finish()

Теперь код sql на всякий случай:


    async def cr_dw_tm(state):
        async with state.proxy() as data:
            cur.execute("INSERT INTO profile VALUES (?, ?, ?)", (0, data['down_time'], 0))
            db.commit()

И вот ошибка, что выдает мне:

future: <Task finished name='Task-19' coro=<Dispatcher._process_polling_updates() done, defined at D:\project\foryou\pythonProject2\.venv\lib\site-packages\aiogram\dispatcher\dispatcher.py:407> exception=KeyError('down_time')>
Traceback (most recent call last):
  File "D:\project\foryou\pythonProject2\.venv\lib\site-packages\aiogram\dispatcher\dispatcher.py", line 415, in _process_polling_updates
    for responses in itertools.chain.from_iterable(await self.process_updates(updates, fast)):
  File "D:\project\foryou\pythonProject2\.venv\lib\site-packages\aiogram\dispatcher\dispatcher.py", line 235, in process_updates
    return await asyncio.gather(*tasks)
  File "D:\project\foryou\pythonProject2\.venv\lib\site-packages\aiogram\dispatcher\handler.py", line 117, in notify
    response = await handler_obj.handler(*args, **partial_data)
  File "D:\project\foryou\pythonProject2\.venv\lib\site-packages\aiogram\dispatcher\dispatcher.py", line 256, in process_update
    return await self.message_handlers.notify(update.message)
  File "D:\project\foryou\pythonProject2\.venv\lib\site-packages\aiogram\dispatcher\handler.py", line 117, in notify
    response = await handler_obj.handler(*args, **partial_data)
  File "D:\project\foryou\pythonProject2\foryou.py", line 93, in time_down_st
    await basa.cr_dw_tm(state)
  File "D:\project\foryou\pythonProject2\basa.py", line 23, in cr_dw_tm
    cur.execute("INSERT INTO profile VALUES (?, ?, ?)", (0, data['down_time'], 0))
  File "D:\project\foryou\pythonProject2\.venv\lib\site-packages\aiogram\dispatcher\storage.py", line 439, in __getitem__
    return self._data[item]
KeyError: 'down_time'

Хотя, если не ставить форматирование данных для ответа, то все проходит успешно. Покажу пример этой части:


    @dp.callback_query_handler(text='happy_stat', state = None)
    async def callback_query_keyboard(call: CallbackData, state=None):
        if call.data == 'happy_stat':
            await bot.send_message(chat_id=call.from_user.id, text='Запиши свое настроение: ')
            await call.message.delete()
            await ProfileStateGroup.happy_stat.set()
            #await create_happy_stat(user_id=call.from_user.id)
    
    @dp.message_handler(content_types='text', state=ProfileStateGroup.happy_stat)
    async def happy_stat_st(message: types.Message, state: FSMContext):
        async with state.proxy() as data:
            data['happy_stat'] = message.text
        await message.reply('Отлично, я записал твою оценку! Чем-то еще могу помочь?', reply_markup=inkb)
        await basa.cr_hp_st(state)
        await state.finish()

и sql:


    async def cr_hp_st(state):
        async with state.proxy() as data:
            cur.execute("INSERT INTO profile VALUES (?, ?, ?)", (0, 0, data['happy_stat']))
            db.commit()

Не понимаю, в чем ошибка? что не так?

Тип у столбцов в таблице: VARCHAR


Ответы (0 шт):