如何在Python中格式化字符串与字典列表用于邮件正文
实现方案
可以通过字符串拼接结合列表推导式,针对每种列表类型编写对应格式化逻辑,最终整合出符合要求的邮件正文字符串:
a = ['1.1.1.1', '2.2.2.2', '3.3.3.3'] b = [{'IP': '1.1.1.1'}, {'IP': '2.2.2.2'}, {'IP': '3.3.3.3'}] c = [{'ID': 'dasfsdfs', 'IP': '1.1.1.1', 'Name': 'me'}, {'ID': 'qwrfgvzx', 'IP': '2.2.2.2', 'Name': 'you'}] # 格式化字符串列表a formatted_a = '\n'.join(a) # 格式化单键字典列表b formatted_b = '\n'.join([f"IP: {d['IP']}" for d in b]) # 格式化多键字典列表c:每个字典的键值对分行,字典间空一行 formatted_c = '\n\n'.join(['\n'.join([f"{k}: {v}" for k, v in item.items()]) for item in c]) # 拼接成邮件正文 my_email = f''' a_var --> {formatted_a} b_var --> {formatted_b} c_var --> {formatted_c} ''' print(my_email)
各部分逻辑说明:
- 字符串列表a:直接用
'\n'.join(a)将列表元素按换行符拼接,让每个元素单独占一行。 - 单键字典列表b:通过列表推导式遍历每个字典,提取
IP对应的值并格式化为IP: 地址的字符串,再用换行符拼接所有结果。 - 多键字典列表c:
- 内层遍历单个字典的键值对,将其格式化为
键: 值的字符串,并用换行符拼接成该字典的内容块; - 外层遍历所有字典,用
\n\n(空一行)拼接不同字典的内容块,实现字典之间的分隔。
- 内层遍历单个字典的键值对,将其格式化为
运行代码后,输出格式完全匹配你要求的邮件正文样式。
内容的提问来源于stack exchange,提问作者Rogers
相关产品推荐
相关产品推荐

