我有一个空列表和一个循环。循环结果附加到空列表。该列表然后通过电子邮件发送给我,但它以['item1', 'item2]
的形式出现我希望此列表的格式如下:
item1
item2
我的代码看起来像这样:
list = []
def function_name():
for item in items:
r = requests.get(item)
results = r.status_code, r.url
print(results, time.strftime('%Y-%m-%d'))
for s_code in results:
list.append(s_code)
msg = str(list)
subject = 'Hello'
sender = 'me@example.com'
recepient = 'you@example.com'
s = smtplib.SMTP('localhost')
s.sendmail('address1@example.com', 'address2@example.com', msg)
s.quit()
check_broken_links()
当我删除str
并执行msg = '\n'.join(list)
时,我收到错误,因为我正在合并int
和str
,如此行results = r.status_code, r.url
所示str
离开{{ 1}}返回一行中的每个可迭代,因此也不好。
PS 仍在处理我的邮件功能,它有点草率,但它发送。
答案 0 :(得分:4)
为电子邮件构建文本时,请将列表转换为包含此行
等新行的字符串text = '\n'.join(list)
如果您要发送html电子邮件,则可能需要执行此操作
text = '<br/>'.join(list)
答案 1 :(得分:2)
要解析数字列表中的str.join
,请运行列表推导进行转换:
msg = '\n'.join([str(i) for i in list])