Python - HTML - 发送带有 CSS 样式的 HTML 表

2024-04-05

我正在尝试发送一封以表格为主体并带有一些 CSS 配置的电子邮件。为此,我有以下代码:

import csv
from tabulate import tabulate
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
import smtplib

text = """Hello, Friend.Here is your data:{table}Regards,Me"""
html = """"\
<html>
<head>
  <style type="text/css">
     .tg  {border-collapse:collapse;border-spacing:0;}
     .tg td{font-family:Arial, sans-serif;font-size:14px;padding:10px 5px;border-style:solid;border-width:1px;overflow:hidden;word-break:normal;border-color:black;}
     .tg th{font-family:Arial, sans-serif;font-size:14px;font-weight:normal;padding:10px 5px;border-style:solid;border-width:1px;overflow:hidden;word-break:normal;border-color:black;}
     .tg .tg-0lax{text-align:left;vertical-align:top} 
  </style>
</head>
<body>
  <table class="tg">
    <tr>
      <th class="tg-0lax">Environment</th>
      <th class="tg-0lax">Date</th>
      <th class="tg-0lax">Error_Type</th>
      <th class="tg-0lax">Error_Object</th>
      <th class="tg-0lax">Description</th>
    </tr>
    <tr>
      <td class="tg-0lax">DEV</td>
      <td class="tg-0lax">15/03/2019</td>
      <td class="tg-0lax">ERROR</td>
      <td class="tg-0lax">Table</td>
      <td class="tg-0lax">More columns than expected</td>
    </tr>
  </table>
</body>
</html>"""

with open('file.csv') as input_file:
    reader = csv.reader(input_file)
    data = list(reader)

然而,当我添加 CSS 样式时,我遇到了一个问题:

html = html.format(table=tabulate(data, headers="firstrow", tablefmt="html"))
KeyError: 'border-collapse'

如何在 HTML 表格中添加该 CSS 样式?

非常感谢!!!


您需要使用双大括号以避免字符串格式插值。

例如:

  <style type="text/css">
     .tg  {{border-collapse:collapse;border-spacing:0;}}
     .tg td{{font-family:Arial, sans-serif;font-size:14px;padding:10px 5px;border-style:solid;border-width:1px;overflow:hidden;word-break:normal;border-color:black;}}
     .tg th{{font-family:Arial, sans-serif;font-size:14px;font-weight:normal;padding:10px 5px;border-style:solid;border-width:1px;overflow:hidden;word-break:normal;border-color:black;}}
     .tg .tg-0lax{{text-align:left;vertical-align:top}} 
  </style>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Python - HTML - 发送带有 CSS 样式的 HTML 表 的相关文章

  • 是否可以使用 csv.DictReader 保持列顺序?

    例如 我的 csv 有如下列 ID ID2 Date Job No Code 我需要以相同的顺序写回各列 这dict立即打乱了顺序 所以我相信这更多是读者的问题 蟒蛇的dicts 在 3 6 之前不维持顺序 但是 无论如何 在该版本中csv
  • Python:像石英一样的事件调度程序[关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 使用 isdigit 表示浮点数?

    a raw input How much is 1 share in that company while not a isdigit print You need to write a number n a raw input How m
  • 创建 Pyomo 约束的性能

    我正在用 pyomo 设置一个更大的能量优化问题 正如其他中提到的 设置花费了不合理的时间问题 https stackoverflow com questions 43413067 performance of pyomo to gener
  • 如何在pandas中分组后从每组中选择前n行? [复制]

    这个问题在这里已经有答案了 我有一个具有以下形状的 pandas 数据框 open year open month type col1 col2 我想找到每个 年 月 中的顶级类型 所以我首先找到每个 年 月 中每种类型的计数 freq d
  • pyqt4窗口调整大小事件

    我正在使用 python3 和 pyqt4 我希望每次运行时都会运行一些代码QMainWindow已调整大小 我想要这样的东西 self window resized connect self resize but resized不是内置函
  • 如何使用httplib2进行相互证书认证

    我正在使用 httplib2 从我的服务器向另一个 Web 服务发出请求 我们想要使用相互证书身份验证 我了解如何使用证书进行传出连接 h set certificate 但是如何检查应答服务器使用的证书 这张票 http code goo
  • 使用字典时如何避免 KeyError?

    现在我正在尝试编写汇编程序 但我不断收到此错误 Traceback most recent call last File Users Douglas Documents NeWS py line 44 in if item in regis
  • :目标选择器不适用于选项标签

    我试图在这里帮助一位 StackOverflow 成员 我发现 CSS target选择器不适用于选项标签 我创建了一个示例来说明使用w3schools 教程 http www w3schools com cssref tryit asp
  • 使用 python 更改目录

    我碰巧发现我无法从 python 代码中更改实际目录 我的测试程序如下 from os import system def sh script system bash c s script sh cd home sh pwd 的输出pwd
  • 保留以下文本的标题

    我正在使用 css 列计数功能将我的部分分成两列 在一个页面上 我在第一列的底部有一个 h3 标题 在下一列的顶部有一个 p 段落 我想保留该段落的前几句话的标题 我可以将其与整个段落一起包装在使用 inline block 样式的 div
  • 数据框更新后如何刷新绘图?

    假设您已经使用以下方法构建了一个图形px line 使用数据框 数据框稍后会添加新数据 用新数据刷新数据的好方法是什么 一个例子可以是px data stocks 从列的子集开始 GOOG AAPL AMZN FB NFLX MSFT 例如
  • 恢复默认的CSS属性

    我正在编写一个可在多个网站上使用的组件 每个网站都有自己的样式表 并且以不同的方式显示某些内容 我的所有 html 都包含在一个带有 id 的 div 中 div div 然而 我的组件是在所有网站上看起来一致 这很好 因为我将样式应用于组
  • 适用于 Python 的 GitLab CI 共享 Windows 运行器

    我在 GitLab 中有一个 python 项目仓库 我看到 GitLab 共享了可用的测试版 Windows 运行程序 请参阅this https about gitlab com blog 2020 01 21 windows shar
  • Python Sqlite3 获取 Sqlite 连接路径

    给定一个 sqlite3 连接对象 如何检索 sqlite3 文件的文件路径 The Python 连接对象 http github com python cpython blob master Modules sqlite connect
  • 插入四个空格而不是制表符

    我试图在按下 Tab 键时插入四个空格 我正在使用以下代码 请参阅spaces t 但是当我将其切换到spaces 当我按 Tab 时只插入一个空格 我还尝试了 function textarea keydown function e va
  • 如何使用Python3.4在tornado中进行异步mysql操作?

    我现在使用Python3 4 我想在Tornado中使用异步mysql客户端 我已经发现torndb https github com bdarnell torndb但在阅读其源代码后 我认为它无法进行异步mysql操作 因为它只是封装了M
  • Python 单元测试:Nose 失败时重试?

    我有一个随机失败的测试 我想让它在发送错误消息之前重试多次 我将 python 与 Nose 一起使用 我写了以下内容 但不幸的是 即使使用 try except 处理 当第一次尝试测试失败时 Nose 也会返回错误 def test so
  • python 根据日期创建目录结构

    我使用以下函数根据今天的日期创建目录 usr bin python import time datetime os today datetime date today todaystr today isoformat os mkdir to
  • 加载腌制字典对象或加载 JSON 文件哪个更快? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 什么更快 A Unpickling 加载 一个 pickled 字典对象 使用pickle load or B 使用以下命令将 JSON

随机推荐

  • 为什么使用 setattr() 和 getattr() 内置函数?

    通过阅读文档 我确切地了解了什么获取属性 http docs python org 3 3 library functions html getattr and 设置属性 http docs python org 3 3 library f
  • .htaccess 停止内部重定向

    首先这是我的目录结构 localhost p htaccess localhost p inc style css 我有这个片段 localhost p htaccess Options MultiViews FollowSymLinks
  • 为 Windows azure blob 设置 access-control-allow-origin 的任何方法

    我将 json blob 存储在 azure 上 并通过 XHR 访问它 在尝试加载这些 blob 时 我收到此错误 XMLHttpRequest 无法加载http myazureaccount blob core windows net
  • Django enctype="multipart/form-data" 未设置 POST 数据

    我需要发送文件和输入文本中的一些数据 这是我正在处理的表格
  • Python json.dumps TypeError:尝试从变量转换时,“set”类型的对象不可序列化,在硬编码时工作

    我尝试从 python 中的变量创建 JSON 字符串 但我得到了奇怪的行为 当我对 pro 对象进行硬编码时 结果格式良好 rev Package ID bbbbb nBuild nnumber 154 nBuilt n s ver st
  • 如何在 XPath 中选择布尔值节点?

    我有一个 XML 文档和关联的架构 它定义了几个具有以下属性的属性 xs boolean类型 的词汇值xs boolean are true false 1 and 0 所以看来要正确选择具有特定布尔值的属性 我必须编写如下内容 attri
  • ASIHTTPRequest 在 ios8 上导致应用程序崩溃

    这里我使用 JSON 来解析数据ASIHTTPRequest相同的代码在我的较低版本的 iOS 上运行良好 iOs7及以下 但我无法在我的 iOS 8 设备上运行它 日志越来越好 但应用程序崩溃了 可能从服务器得到较晚的回复 它不应该因延迟
  • 展开R公式

    这可能看起来是一个简单的问题 但是有没有快速而可靠的方法来扩展像这样的公式 f formula y a b to y a b ab 我会尝试这个 f y a b reformulate labels terms f f 2 y a b a
  • 使用 HTTP 身份验证和 maven-jaxb2-plugin 生成 WSDL 架构

    我想使用 jaxb2 插件生成可从安全 URL 访问的 WSDL 使用用户 ID 和密码进行基本身份验证 我应该在哪里指定生成架构的凭据 如果不提供它们 我会在架构生成过程中收到一个 401 错误
  • 关于 WCF 通道的困惑

    我对代理和通道感到困惑 根据我的阅读 WCF 客户端使用代理通过一系列通道传递消息 每个通道负责特定的任务 例如一个通道对消息进行编码 另一个通道对其进行加密 当我看到下面的代码时 我的困惑开始了 When proxy MyMethod 叫
  • C++ 异常处理增加了多少占用空间

    这个问题对于嵌入式开发尤其重要 异常处理为生成的二进制输出增加了一些占用空间 另一方面 毫无例外 错误都需要以其他方式处理 这需要额外的代码 最终也会增加二进制大小 我对你的经历很感兴趣 尤其是 您的编译器为异常处理添加的平均占用空间是多少
  • php 中 mysql 的程序实现和面向对象实现有何区别? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • Automapper、MapFrom 和 EF 动态代理

    我一直在尝试将域对象映射到报表视图模型 在测试中一切都很顺利 我伪造了实体框架代码并使用构建器返回完全填充的 pocco 对象 现在我实际上正在访问数据库并返回数据 我看到一些奇怪的动态代理类型错误 这是我的代码示例 public clas
  • Android 可用的 mime 类型?

    经过多次在线搜索 我找不到一个地方可以告诉我 Android 应用程序中不同类型媒体的每种现有 MIME 类型 以下是我所知道的存在且有效的 For Text text plain For Image image jpeg image bm
  • 为什么在asp.net mvc中会话超时后jquery ajax调用失败?

    当我的会话变量中有一个值时 我的ajax调用可以正常工作 但是当会话超时时 它似乎无法返回空的json结果 public JsonResult GetClients int currentPage int pageSize if Sessi
  • Java 编译器用 + 连接替换 StringBuilder

    下面是一些简单的 Java 代码 String s new StringBuilder append a append b append c toString 我使用 JRE 1 6 对其进行编译 并在反编译的类文件中观察到以下内容 Str
  • Woocommerce - 如何删除产品列表上的“添加到购物车”按钮

    我想删除产品列表页面上的 添加到购物车 按钮 我希望它出现的唯一地方是单个产品页面 谁能建议我在哪里可以找到删除它 我无法从文档中获得任何帮助 目前该按钮出现在每个列表下方 我不知道如何从 WooCommerce 执行此操作 但使用以下代码
  • 运算符优先级和三元运算符

    我在 C 中遇到了问题 include
  • 循环内的递归函数

    我一直在研究递归函数 并且开始或多或少地理解它们 当我遇到这个问题时 我正在参加一个免费的代码训练营挑战 但我不明白它 for 循环内的递归函数 function steamroller arr var newArr for var i 0
  • Python - HTML - 发送带有 CSS 样式的 HTML 表

    我正在尝试发送一封以表格为主体并带有一些 CSS 配置的电子邮件 为此 我有以下代码 import csv from tabulate import tabulate from email mime multipart import MIM