#python #telegram #python-telegram-bot
Вопрос:
Я пытаюсь создать простого бота, который отключает пользователей, но у меня возникли некоторые проблемы с получением идентификатора пользователя в ответном сообщении.
Я не могу получить доступ к идентификатору пользователя, потому что библиотека использует from
ключ, как:
def mute_user(update, context):
bot = context.bot
print(update.message.reply_to_message.from.id)
Я не могу использовать ключ «от», потому что он зарезервирован, поэтому он выдает мне ошибку.
Если я удалю .from.id
его , результат будет таким:
[...] 'from': {'is_bot': False, 'username': '*****', 'first_name': '*****', 'id': 150*****}}
Как я могу получить доступ к этому идентификатору?
Комментарии:
1. Похоже
from
, это ключ в диктанте, так что вы пробовали что-то вродеdata['from']['id']
?
Ответ №1:
Я решил эту проблему, прочитав документацию по python-telegram-боту
Я использовал update.message.reply_to_message.from_user
вместо update.message.reply_to_message.from
Ответ №2:
Не уверен, что это ответ на то, что вы ищете, но поскольку я вижу, что вы используете словари, скорее всего, вложенные словари, вот пример того, как получить ключи.
user_dict = {
'user1':{
'is_bot': False,
'first_name': "Bob",
'username': '******',
'id': '150'
},
'user2':{
'is_bot': False,
'first_name': "Joe",
'username': '******',
'id': '250'
}
}
# ******** Search Record *******
usrnm = input("Enter username: ")
usr_id = input("Enter usrr id: ")
for usr in user_dict:
u = user_dict[usr].get("Username")
p = user_dict[usr].get("id")
if usrnm != u and usr_id != p:
continue
else:
print("found!")