Ошибка TypeError: unsupported operand type(s) for +: 'generator' and 'str'

Вылезла ошибка TypeError: unsupported operand type(s) for +: 'generator' and 'str' связанная с + в части bot.reply_to(message, text=(f'{user[1]}](tg://user?id={user[0]}, ваши ставки:\n\n' for user in users) + "\n".join(f'{user_roulette[2]} на {user_roulette[1]}' for user_roulette in users_roulette)). Как её решить?

elif rt == 'ставки':
    conn = sqlite3.connect('database.db', check_same_thread=False)
    cur = conn.cursor()

    cur.execute(
        'SELECT user_id, bid, bid_money FROM roulette_users WHERE user_id=("%s") and group_id=("%s")' % (user_id, group_id))
    users_roulette = cur.fetchall()
    cur.execute('SELECT user_id, nickname FROM users WHERE user_id=("%s")' % user_id)
    users = cur.fetchall()

    if len(users_roulette) == 0:
       bot.reply_to(message, text='У вас нету ставок')
    else:
       bot.reply_to(message, text=(f'{user[1]}](tg://user?id={user[0]}, ваши ставки:\n\n' for user in users) + "\n".join(f'{user_roulette[2]} на {user_roulette[1]}' for user_roulette in users_roulette))

Ответы (1 шт):

Автор решения: Daniele_Taby

Ошибка указывает на то, что вы пытаетесь сложить объект типа генератора и строку, что не поддерживается напрямую в Python.TypeError: unsupported operand type(s) for +: 'generator' and 'str'. Использование генератора внутри создает объект генератора, и затем вы пытаетесь сложить его с строкой. Вместо этого, вы можете использовать для объединения строк, созданных генераторами.text=(...)join

→ Ссылка