TypeError: Database.get_answer() missing 1 required positional argument: 'answer_id'
Мне нужно чтобы бот отвечал заготовками в БД.
Выдает ошибку -
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']
Прошу помочь
Источник: Stack Overflow на русском