Как отформатировать вывод бота 'send_message', чтобы он выровнялся как таблица? - PullRequest
0 голосов
/ 07 мая 2019

Я пытаюсь создать простой бот Telegram, используя замечательный модуль python-telegram-bot , но я не могу выровнять словарь с идеей по умолчанию "{0:<20} {1}".format(key, value).

Позвольте мне привести пример:

MAP = {
    "one": "1",
    "two": "2",
    "three": "3",
    "four": "4",
    "five": "5",
    "six": "6",
    "seven": "7",
    "eight": "8"
}

tmpstring = ""

for key, value in MAP.items():
    tmpstring = tmpstring + "{0:<20} {1}".format(key, value) + "\n"

print(tmpstring)
context.bot.send_message(chat_id=update.message.chat_id, text=tmpstring)

напечатанное изображение выглядит следующим образом:

one                  1
two                  2
three                3
four                 4
five                 5
six                  6
seven                7
eight                8

, как и ожидалось, прекрасно выровнено, но сообщение в Telegram выглядит так:

enter image description here

Итак, мой вопрос: как выровнять сообщение чата, чтобы оно выглядело как распечатанный вывод?

1 Ответ

1 голос
/ 08 мая 2019

Я всегда использую стиль уценки pre-formatted, чтобы сохранить выравнивание. ( Docs )

Оберните прекрасно выровненную таблицу в кавычках


> ```
one          1
two          2
three        3

> ```

Примечание: Удалить > до `

Отправьте ваше сообщение с MarkDown parsemode

...