Ошибка, которую вы получаете, может указывать на то, что во время создания инлайн клавиатуры не был указан обязательный параметр type. В aiogram 3.x необходимо обязательно задавать тип для клавиатуры.
Попробуйте следующий код, чтобы исправить проблему:
from aiogram import Bot, Dispatcher, types
from aiogram.types import InlineKeyboardButton, InlineKeyboardMarkup
from aiogram.contrib.fsm_storage.memory import MemoryStorage
from aiogram.utils import executor
# Инициализация бота и диспетчера
bot = Bot(token='YOUR_BOT_TOKEN')
storage = MemoryStorage()
dp = Dispatcher(bot, storage=storage)
# Создание инлайн клавиатуры
keyboard_2button = InlineKeyboardMarkup(inline_keyboard=[
[
InlineKeyboardButton(text='pass', callback_data='pass_action'),
InlineKeyboardButton(text='exit', callback_data='exit_action')
]
])
@dp.message(commands=['pars'])
async def pars(message: types.Message):
await message.answer("Выберите действие:", reply_markup=keyboard_2button)
if __name__ == '__main__':
executor.start_polling(dp, skip_updates=True)
Обратите внимание на несколько моментов:
- Я использую конструктор InlineKeyboardMarkup с параметром inline_keyboard, который принимает список списков. Это необходимый формат для создания клавиатуры.
- Убедитесь, что вы корректно импортировали необходимые классы из модуля aiogram.
Field required [type=missing, input_value={'row_width': 2}, input_type=dict]
For further information visit https://errors.pydantic.dev/2.10/v/missing.
Как фиксить? вот код(не считая импортов и базовых вещей)
##
keyboard_2button = InlineKeyboardMarkup(row_width=2,)
keyboard_2button.add(InlineKeyboardButton(text='pass', callback_data='pass_action'),
InlineKeyboardButton(text='exit', callback_data='exit_action'))
##