如何使用Telegram Bot API发送表格?

时间:2018-03-18 08:34:36

标签: telegram telegram-bot

我需要发送股票市场数据,格式很糟糕。需要发送一些类似的东西

| Symbol | Price | Change | 
|--------|-------|--------|
| ABC | 20.85 | 1.626 | 
| DEF | 78.95 | 0.099 | 
| GHI | 23.45 | 0.192 | 
| JKL | 98.85 | 0.292 |

这就是我的尝试。

| Symbol | Price | Change |  
|--------|-------|--------|  
| ABC | 20.85 | 1.626 |   
| DEF | 78.95 | 0.099 |   
| GHI | 23.45 | 0.192 |    
| JKL | 98.85 | 0.292 |

6 个答案:

答案 0 :(得分:5)

您可以使用 HTML Markdown 标记在HTML中发送<pre>之类的内容。就像this example

答案 1 :(得分:5)

尝试一下

```| Symbol | Price | Change |
|--------|-------|--------|
| ABC    | 20.85 |  1.626 |
| DEF    | 78.95 |  0.099 |
| GHI    | 23.45 |  0.192 |
| JKL    | 98.85 |  0.292 |```

答案 2 :(得分:0)

将电报 parse_mode 参数设置为 HTML 并将文字包装在<pre></pre>

<pre> | Tables | Are | Cool | |----------|:-------------:|------:| | col 1 is | left-aligned | $1600 | | col 2 is | centered | $12 | | col 3 is | right-aligned | $1 | </pre>

导致电报混乱:

enter image description here

已更新 在智能手机的小屏幕上会出现问题。所以这种方法不好。唯一的选择是转换图片中的表,然后发送。 :(

答案 3 :(得分:0)

我发现了这个图书馆-TableJs-解决了这个问题。在桌面客户端上效果很好,但是android客户端似乎无法正确呈现它。

答案 4 :(得分:0)

将文本格式设置为“ Monospace”也可以

答案 5 :(得分:0)

在 python 中导入“prettytable”库来格式化你的表格:

import prettytable as pt
from telegram import ParseMode
from telegram.ext import CallbackContext, Updater


def send_table(update: Updater, context: CallbackContext):
    table = pt.PrettyTable(['Symbol', 'Price', 'Change'])
    table.align['Symbol'] = 'l'
    table.align['Price'] = 'r'
    table.align['Change'] = 'r'

    data = [
        ('ABC', 20.85, 1.626),
        ('DEF', 78.95, 0.099),
        ('GHI', 23.45, 0.192),
        ('JKL', 98.85, 0.292),
    ]
    for symbol, price, change in data:
        table.add_row([symbol, f'{price:.2f}', f'{change:.3f}'])

    update.message.reply_text(f'<pre>{table}</pre>', parse_mode=ParseMode.HTML)
    # or use markdown
    update.message.reply_text(f'```{table}```', parse_mode=ParseMode.MARKDOWN_V2)

您将收到如下消息:

+--------+-------+--------+
| Symbol | Price | Change |
+--------+-------+--------+
| ABC    | 20.85 |  1.626 |
| DEF    | 78.95 |  0.099 |
| GHI    | 23.45 |  0.192 |
| JKL    | 98.85 |  0.292 |
+--------+-------+--------+