You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

用Pandas为DataFrame列加超链接嵌入Outlook邮件时遇NoneType错误求助

问题解决:DataFrame转HTML插入Outlook邮件并添加Jira超链接

错误原因

你的format_df函数没有返回值,默认返回None,导致拼接HTML字符串时触发TypeError: can only concatenate str (not "NoneType") to str错误。此外原代码会给替换后的'-'生成无效Jira链接,需要优化。

修正后的代码

1. 格式化DataFrame的函数

import pandas as pd

def format_df(dataframe):
    # 仅为非空(非'-')的Issue_Ticket添加Jira超链接
    dataframe['Issue_Ticket'] = dataframe['Issue_Ticket'].apply(
        lambda x: f'<a href="https://jira.net/browse/{x}">{x}</a>' if x != '-' else x
    )
    # 返回生成的HTML字符串(必须加return)
    return dataframe.to_html(justify='center', escape=False, na_rep='-')

2. 生成邮件HTML正文的代码

df = pd.read_excel("Test_Results.xlsx", sheet_name='data').fillna('-')
html_body = '''\
<html><head></head>
<body>''' + format_df(df) + '''</body></html>

关键说明

  • 必须在format_df函数中添加return,把to_html生成的HTML字符串返回,否则函数默认返回None。
  • escape=False确保生成的<a>标签不会被转义成纯文本,能在邮件中正常显示超链接。
  • 增加了对'-'的判断,避免给空值生成无效的Jira链接。如果想直接判断原数据的NaN,可把条件改成if not pd.isna(x),同时去掉提前的fillna('-'),直接在to_html的na_rep参数中指定空值显示内容。

内容的提问来源于stack exchange,提问作者Bharath

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.04 11:45:23