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