Python:将字符串格式化为非等宽字体的 table

Python: format string as table in non-monospace font

我正在研究 Slack Webhooks 与 Slack 的集成 Slash commands。我的脚本流程如下:

  1. 正在从 Slack 获取斜杠命令请求。
  2. 处理数据(以 dict 或 Pandas DataFrame 的形式)
  3. 使用 Slack webhook 发回频道。

我的回复是一组 key:value 记录或两列数据框。我想将它们很好地打印到 Slack 中,但是我 运行 遇到了格式问题。

  1. 使用 Slack 反引号制作等宽字体的代码块是行不通的,因为我可能有非常大的记录,Slack 会在 8000 个字符后修剪字符串。

  2. 打印没有等宽的行,作为纯文本,会导致每行宽度不同的丑陋列。

我尝试了各种格式化技巧,但找不到使用 Slack API 将响应格式化为两个非常长的列的好方法。我想我正在寻找一个好的库,它可以根据正在使用的字体为我格式化字符串。

如有任何帮助,我们将不胜感激。

Slack 消息并不是真正为处理大量结构化数据集而设计的。在我个人看来,最好的选择是向网页提供 link 以显示该数据。

但是,如果您想在 Slack 中显示数据,我建议将其上传为纯文本文件。这些字符可以远大于 8.000 个字符,并且可以使用等宽字体显示,这样您就可以正确设置它们的格式。

查看 files.upload 并将 filetype 设置为 text 以在频道中上传和共享文件。