Задать вопрос
mikkhalev
@mikkhalev

Как исправить ошибку can "only concatenate tuple (not "str") to tuple"?

Добрый вечер. Пишу бота. Суть проста, пользователь жмет на нужную кнопку, а затем бот редактирует сообщение на текст, который код формирует вытаскивая текст из нескольких ячеек базы данных 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)
  • Вопрос задан
  • 7708 просмотров
Подписаться 1 Простой Комментировать
Решения вопроса 1
SoreMix
@SoreMix Куратор тега Python
yellow
TypeError: can only concatenate tuple (not "str") to tuple

Ошибка типов: можно складывать только tuple (не строку) с tuple

Вы складываете tuple и строку. Решение? Не складывать разные типы, приводить их к одному через соответствующие функции int(), str(), list() итд
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы