Бот выводит всего 1 results в InlineQueryResultArticle вместо 2
Подскажите, пожалуйста, как исправить код, чтобы в inline mode при вводе ключевого слова выводилось не 1 наименование, а сразу все упоминания по таблице? Ошибка в id='2',но что-то не могу разобраться, какой ID вводить
@dp.inline_handler(lambda query: len(query.query) > 0)
async def inline_handler(query: types.InlineQuery):
ID = str(query.from_user.id)
text = query.query
text = text.upper()
file = "Trello/Trello.xlsx"
wb = openpyxl.load_workbook(file, read_only=False)
ws = wb[ID]
for row in ws.iter_rows(1):
for cell in row:
if re.findall(text, str(cell.value).upper()):
satus = ws.cell(column=3, row=cell.row).value
name = ws.cell(column=2, row=cell.row).value
articles = [types.InlineQueryResultArticle(
id='2',
title=name,
description=satus,
input_message_content=types.InputTextMessageContent(message_text=name))]
await query.answer(articles, cache_time=5, is_personal=True)
В таблице 2 строки со словом "Инжир"
Но бот выводит только 1
Ответы (1 шт):
Автор решения: LHARTZ
→ Ссылка
Получилось через append
@dp.inline_handler(lambda query: len(query.query) > 0)
async def inline_handler(query: types.InlineQuery):
ID = str(query.from_user.id)
text = query.query
text = text.upper()
file = "Trello/Trello.xlsx"
wb = openpyxl.load_workbook(file, read_only=False)
ws = wb[ID]
list = []
list_2 = []
for row in ws.iter_rows(1):
for cell in row:
if re.findall(text, str(cell.value).upper()):
satus = ws.cell(column=3, row=cell.row).value
name = ws.cell(column=2, row=cell.row).value
list.append([satus])
list_2.append([name])
articles = []
for i in range(len(list_2)):
articles.append(types.InlineQueryResultArticle(
id=str(i),
title=str((str(list_2[i])).replace("['", '')).replace("']", ''),
description=str((str(list[i])).replace("['", '')).replace("']", ''),
input_message_content=types.InputTextMessageContent(
message_text=str((str(list_2[i])).replace("['", '')).replace("']", ''))))
await query.answer(articles, cache_time=0, is_personal=True)