TypeError: Database.get_answer() missing 1 required positional argument: 'answer_id'

Рейтинг: 0Ответов: 0Опубликовано: 18.02.2023

Мне нужно чтобы бот отвечал заготовками в БД.

Выдает ошибку - TypeError: Database.get_answer() missing 1 required positional argument: 'answer_id'

main.py

    db = Database('database.db')

    if len(msg.text) <= 4 or all(map(lambda c: c in ascii_letters, msg.text)):
        await msg.answer('Извините, я вас не понял')
    else:
        answer_id = recognize_question(msg.text, db.get_answer())
        #await bot.send_message(msg.from_user.id, db.get_answer(answer_id))

        await msg.answer(db.get_answer(answer_id))

db.py

    def __init__(self, db_file):
        engine = create_engine('sqlite:///' + db_file)
        Session = sessionmaker(bind=engine)
        self.session = Session()

    def get_questions(self):
        result = self.session.query(question).all()
        data = {}
        for row in result:
            questions = tuple(row.questions.split(';'))
            data[row.id] = questions
        return data

    def get_answer(self, answer_id):
        if answer_id == 47:
            result = self.session.query(BadWordsAnswer.answer).order_by(func.random()).first()
            return result[0]
        else:
            result = self.session.query(Question.answer).filter(question.id == answer_id).first()
            return result[0]

functions

def recognize_question(question, questions):
    recognized = {'id': '', 'percent': 40}

    for key, value in questions():
        for q in value:
            percent = fuzz.ratio(question, q)
            if percent > recognized['percent']:
                recognized['id'] = key
                recognized['percent'] = percent

    return recognized['id']

Прошу помочь

Ответы

Ответов пока нет.