python - 如何将 json 对象漂亮地打印为电子邮件 python

标签 python json email elasticsearch

我有一个 python 脚本,它以 json 的形式获取集群运行状况并向我发送邮件。问题是 json 打印不漂亮。 这些是我已经尝试过的方法:

  1. 简单 --> json.dumps(health)
  2. json.dumps(health, indent=4, sort_keys=True)

但是gmail中的输出还是没有格式化,有点像这样

{ “active_primary_shards”:25,“active_shards”:50,“active_shards_percent_as_number”:100.0,“cluster_name”:“number_of_pending_tasks”:0,“relocating_shards”:0,“status”:“green”,“task_max_waiting_in_queue_millis": 0, "timed_out": false, "unassigned_shards": 0

邮件已发送到 gmail

最佳答案

我不能肯定地说,但看起来您的电子邮件发送代码默认发送“HTML”电子邮件,并且在 HTML 中连续的空格合并为一个,这样 HTML 代码如下:

<p>
    This is a paragraph, but it's long so
    I'll break to a new line, and indented
    so I know it's within the `p` tag, etc.
</p>

看起来像“这是一个段落,但它很长所以我会换行,并缩进以便我知道它在 p 标签内,等等。”给用户。

所以,我想说你的两个选择是:

  1. 更改电子邮件发送代码以发送 Content-type标题为 text/plain , 或
  2. &nbsp; 替换所有空格(不间断空格)字符和换行符 <br> (休息),例如:

    email_body = json.dumps(
        health, indent=4, sort_keys=True).replace(' ', '&nbsp;').replace('\n', '<br>')
    

关于python - 如何将 json 对象漂亮地打印为电子邮件 python,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41458580/

相关文章:

java - 无法解析 Java MIME 邮件消息

python - 在Python中检查二维数组中的所有元素是否都等于1

python - Django Admin - 如何禁止创建已经存在的对象

python os.walk 什么也不返回

java - 在 Java 中将 ArrayList 转换为 JSON 对象

jquery - 为什么我无法从测试框架中的有效 JSON 文件解析对象结构

python - 将 LocustIO 集成到 Jenkins 的性能插件中

c# - 使用 C# 和 Newtonsoft 将 List<string> 转换为 JSON

c# - 安排要发送的电子邮件

java - 通过 IMAP 获取电子邮件详细信息