Добрый вечер. Пишу бота. Суть проста, пользователь жмет на нужную кнопку, а затем бот редактирует сообщение на текст, который код формирует вытаскивая текст из нескольких ячеек базы данных SQLite. Использую библиотеку PyTelegramBotApi. Чем вызвана ошибка и как избежать ее? Заранее спасибо всем за помощь.
Ошибка:
File "bot.py", line 244, in callback_inline
bot.edit_message_text(chat_id=call.message.chat.id, message_id=call.message.message_id, text=product_name('bud1') + "\n" + "-----------------\n" + product_about('bud1') + "\n" + "\n"+"Цена: "+product_price('bud1'), parse_mode='html', reply_markup=markup)
TypeError: can only concatenate tuple (not "str") to tuple
Функции обращений к бд:
def product_name(id ):
with sqlite3.connect('database.db') as connection:
cursor = connection.cursor()
cursor.execute("SELECT `name` FROM `catalog` WHERE `id` = ? ", (id,))
result = cursor.fetchone()
return result
def product_about(id ):
with sqlite3.connect('database.db') as connection:
cursor = connection.cursor()
cursor.execute("SELECT `about` FROM `catalog` WHERE `id` = ? ", (id,))
result = cursor.fetchone()
return result
def product_price(id ):
with sqlite3.connect('database.db') as connection:
cursor = connection.cursor()
cursor.execute("SELECT `price` FROM `catalog` WHERE `id` = ? ", (id,))
result = cursor.fetchone()
return result
Код вывода по кнопке:
if call.data == 'bud-1':
markup = types.InlineKeyboardMarkup(row_width=1)
item1 = types.InlineKeyboardButton("Назад", callback_data='bud')
markup.add(item1)
bot.edit_message_text(chat_id=call.message.chat.id, message_id=call.message.message_id, text=product_name('bud1') + "\n" + "-----------------\n" + product_about('bud1') + "\n" + "\n"+"Цена: "+product_price('bud1'), parse_mode='html', reply_markup=markup)