Я пытаюсь создать ботов Telegram с нуля с помощью python. Я сделал все начальные шаги и получил бот-токен, и теперь то, что я хочу сделать, это простое управление данными, которые он отправляет мне (например, получение first_name
человека из метода getupdates
). Я хочу, чтобы данные были аккуратно упорядочены в словарь python.Обновления Telegram bot для преобразования python dict
Когда я пытаюсь /getme
, я получаю это: b'{"ok":true,"result":{"id":999999999,"first_name":"telebotsrock","username":"sample_bot"}}'
Поскольку b'
в начале и '
в конце вызывает ошибку, когда я json.loads(data)
(где данные вещь, приведенные выше преобразуется в строку).
Так что я data[2:-1]
удалить b'
и '
и json.loads()
работает нормально, но когда я изменить /getme
к /getupdates
, куча новых ошибок выскакивают.
В целом, это беспорядок. Может ли кто-нибудь дать мне чистый способ получить данные от бота и отсортировать его в словаре python? Пожалуйста, не говорите мне использовать другой язык или просто скопируйте существующую структуру бота.
Мой текущий код:
from urllib.request import urlopen
import json
token="999999999:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
site="https://api.telegram.org/bot"+token
content=str(urlopen(site+"/getme").read())
#content=str(urlopen(site+"/getupdates").read())
data=content[2:-1]
print(data)
info=json.loads(data)
print(info)
Этот код правильно кроющий вывод /getme
в словарь питона, но дает ошибки при попытке /getupdates
вместо этого.
/getupdates
Выход перед тем, как нарезать это:
b'{"ok":true,"result":[{"update_id":66666666,\n"message":{"message_id":1,"from":{"id":777777777,"first_name":"Aswin","last_name":"G","username":"MatrixHunter"},"chat":{"id":777777777,"first_name":"Aswin","last_name":"G","username":"MatrixHunter","type":"private"},"date":1459932293,"text":"\\/start"}},{"update_id":88888888,\n"message":{"message_id":2,"from":{"id":777777777,"first_name":"Aswin","last_name":"G","username":"MatrixHunter"},"chat":{"id":777777777,"first_name":"Aswin","last_name":"G","username":"MatrixHunter","type":"private"},"date":1459932298,"text":"Oy"}}]}'
Спасибо! Это сработало –