You need to enable JavaScript to run this app. 使用Python将pandas导出的HTML写入Confluence时内容为None的问题求助
优惠活动
大模型
产品
解决方案
定价
更多

使用Python将pandas导出的HTML写入Confluence时内容为None的问题求助

问题根因

代码存在3个核心问题导致拿到的是None值:

  • pandas的DataFrame.to_html()方法如果传入了文件路径作为buf参数,会直接把HTML内容写入目标文件,方法本身返回None,所以赋值的html_file变量本身就是空值。
  • 逻辑顺序错误:return html_file语句写在了打印变量类型、调用Confluence写入方法的前面,return执行后后续代码永远不会运行。
  • 低级拼写错误:export_file函数定义末尾缺少冒号,调用write_data_to_confluence时将参数pageid错写为padeid。
修复方案

你可以选择两种方式拿到可用的HTML内容:

  1. 直接生成HTML字符串,同时写入本地文件和Confluence,减少IO操作
  2. 保留原有写文件逻辑,手动读取本地HTML文件的内容

以下是修正后的完整代码:

import os
import pandas
import pathlib

def authenticate():
    auth = get_login()
    return auth

def export_file():
    auth = authenticate()
    pageid = 11111111
    title = 'GCP Instance List'
    output_dir = os.path.join("..", "..", "output_files", "gcp_instance_list", "html", "")
    output_file = os.path.join(output_dir, "gcp-instance-list.html")
    # 直接生成HTML字符串
    html_content = docs.to_html()
    # 写入本地文件
    with open(output_file, 'w', encoding='utf-8') as f:
        f.write(html_content)
    path = pathlib.Path(output_file)
    if path.exists():
        print(type(html_content))
        # 修正参数拼写错误
        write_data_to_confluence(auth, html_content, pageid, title)
        # 将return放到所有逻辑执行完成后
        return html_content
    else:
        print("HTML file has not been created.")

如果你更倾向于读取已生成的本地HTML文件,替换生成内容的部分即可:

# 原有写文件逻辑
docs.to_html(output_file)
# 读取本地文件内容
with open(output_file, 'r', encoding='utf-8') as f:
    html_content = f.read()

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.20 23:36:10