我试图创建HTML格式(用于发送自动电子邮件)从JSON数据,我从一个内部数据库获得,我得到以下错误为'无'类型,我想捕捉'无'类型以及?如何即使对于“None”类型也不抛出错误?你知道吗
你知道吗输入:-你知道吗
{'total': 0, 'Resolution': None, 'key': u'CNSSDEBUG-151394', 'summary': u'[Lenovo][NFA344A][Win10] - [QCA6174_9377.WIN.1.0-10366-QCARMTFX86WZ-2] - Undetermined crash root cause'}
你知道吗代码:-你知道吗
........
for item in jiradb :
MailBody = MailBody + "<tr>"
MailBody = MailBody + "<td>" + str(icount) + "</td>"
print item['key']
MailBody = MailBody + "<td>" + item['key'].rstrip('\n!') + "</td>"
MailBody = MailBody + "<td>" + item['summary'].rstrip('\n!') + "</td>"
MailBody = MailBody + "<td>" + item['Resolution'].rstrip('\n!') + "</td>"
icount = icount + 1
。。。。。。。。。。。。。。。。。。。。。。。你知道吗
你知道吗错误:-你知道吗
Traceback (most recent call last):
File "sns.py", line 217, in <module>
main()
File "sns.py", line 215, in main
sendmail(meta,jiradb,total_no_crashes)
File "sns.py", line 47, in sendmail
MailBody = MailBody + "<td>" + item['Resolution'].rstrip('\n!') + "</td>"
AttributeError: 'NoneType' object has no attribute 'rstrip'
使用
dict.get(key,default)
从dict中提取每个字段以避免丢失字段,然后使用or
覆盖None
大小写例如
变成
那么您可能需要一个helper函数
这样你的循环就更干净了,你就更安全了
这个答案听起来可能太宽泛了,但我建议切换到模板引擎,比如^{} 或^{} ,而不是尝试使用字符串串联来手动构造HTML。您可以通过使用变量占位符和内置或自定义过滤器来解决这类问题。你知道吗
作为奖励,您可以很好地分离逻辑(Python代码)和表示(生成的HTML)。一个更干净、更易测试的代码。你知道吗
下面是一个使用} filter )的工作示例:
jinja2
(创建了custom ^{index.html
内容:印刷品:
相关问题 更多 >
编程相关推荐