Как я могу отправить сообщение всем пользователям в боте? - PullRequest
0 голосов
/ 13 июля 2020

Я пытаюсь отправить сообщение всем своим ботам, но не могу получить идентификаторы int. Вместо этого я получаю кортежи! Код:

def send_msg_all_to(message):
    try:
        connect = pymysql.connect('localhost', 'root', '', 'python')
        user_id = message.chat.id
        text[user_id] = str(message.text)
        if len(text[user_id]) < 2 or len(text[user_id]) >= 120:
            raise ExpException("Error")
    except ExpException as e:
        msg = bot.send_message(message.chat.id, e)
        bot.register_next_step_handler(msg, send_msg_all_to)
    except ValueError as e:
        msg = bot.send_message(message.chat.id, "Error")
        bot.register_next_step_handler(msg, send_msg_all_to)
    except pymysql.Error as e:
        print("error in send_msg_all_to()", e)
    else:
        cursor = connect.cursor()
        query = "SELECT usr_id FROM users"
        cursor.execute(query)
        users = cursor.fetchall()
        msg = bot.send_message(message.chat.id, "Your message" % (text[user_id]))
        bot.register_next_step_handler(msg, start) 
        for user in users:
            print(user)
            #bot.send_message(user, "Admin %s" % (text[user_id]))
    finally:
        connect.close() 

На данный момент у меня есть 2 идентификатора в базе данных, и это мой результат:

(1020347173,)
(130513514,)

Я хочу получить только все идентификаторы без кортежей, как int, и использовать их для bot.send_message(). Можете ли вы помочь мне в достижении этой цели?

1 Ответ

0 голосов
/ 13 июля 2020

Поскольку вы выбираете только столбец, вы знаете, что получите кортеж с одним элементом.

Итак, вам нужно просто получить доступ к первому элементу кортежа, то есть user[0]:

for user in users:
    print(user[0])
    bot.send_message(user[0], "Admin %s" % (text[user_id]))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...