我有一个python脚本,它以json的形式获取集群运行状况并向我发送邮件。问题是json打印得不是很好。 这些是我已经尝试过的方法:
但是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
答案 0 :(得分:2)
我无法肯定地说,但看起来你的电子邮件发送代码默认发送一个" 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>
看起来&#34;这是一个段落,但它很长,所以我会打破一个新行,并缩进,所以我知道它在p
内标签等&#34;给用户。
所以,我说你的两个选择是:
Content-type
标题发送为text/plain
或将所有空格替换为
(不间断空格)字符和换行符<br>
(中断),例如:
email_body = json.dumps(
health, indent=4, sort_keys=True).replace(' ', ' ').replace('\n', '<br>')
答案 1 :(得分:0)
>>> import json
>>> s = json.dumps({'4': 5, '6': 7}, sort_keys=True, indent=4)
>>> print s
{
"4": 5,
"6": 7
}
我的工作正常
Python 2.7.3(默认,2015年1月17日,17:10:37)
[gCC 3.4.5 20051201(Red Hat 3.4.5-2)] on linux2
也许它的版本相关,发布您的版本和输出