我需要发送股票市场数据,格式很糟糕。需要发送一些类似的东西
| 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 |
答案 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>
导致电报混乱:
已更新 在智能手机的小屏幕上会出现问题。所以这种方法不好。唯一的选择是转换图片中的表,然后发送。 :(
答案 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 |
+--------+-------+--------+