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

如何在PyHTML库中渲染原始HTML

如何在PyHTML库中渲染原始HTML

嘿,我刚好碰到过一模一样的问题,给你几个能解决这个问题的办法:

首先,你现在的问题是PyHTML把pandas生成的HTML字符串当成普通文本转义输出了,所以浏览器显示的是代码而不是渲染好的表格。要让它直接渲染原始HTML,核心是告诉PyHTML这段内容不需要转义。

方案1:使用h.raw()方法(推荐)

PyHTML的新版本里,raw()是专门用来插入原始HTML内容的方法,你只需要把to_html()生成的字符串用它包裹起来就行。修改后的代码如下:

s = h.html(
    h.head(
        h.title("Student Data")
    ),
    h.body(
        h.h1("Student Details"),
        h.raw(sdf.to_html(index=False))
    )
)

这个方法会直接把pandas生成的表格HTML插入到页面里,不会做任何转义,浏览器就能正常渲染出表格了。如果之前你调用raw()提示不存在,大概率是版本问题,先升级PyHTML到最新版试试:

pip install --upgrade pyhtml

方案2:手动构造表格(备选,不推荐)

如果实在不想用raw(),也可以把pandas的DataFrame数据转换成PyHTML的表格元素,但这种方式比较繁琐,适合需要自定义表格样式的场景。举个简单的例子:

# 先获取表头和数据
headers = sdf.columns.tolist()
rows = sdf.values.tolist()

# 用PyHTML构造表格
table = h.table(
    h.thead(
        h.tr(*[h.th(header) for header in headers])
    ),
    h.tbody(
        *[h.tr(*[h.td(cell) for cell in row]) for row in rows]
    ),
    border="1",
    klass="dataframe"
)

# 然后把table放到body里
s = h.html(
    h.head(h.title("Student Data")),
    h.body(h.h1("Student Details"), table)
)

不过这种方式需要自己处理样式和结构,远不如直接用raw()方便,所以优先推荐第一种方案。

你试试上面的方法,应该就能看到正常渲染的学生成绩表格啦!

备注:内容来源于stack exchange,提问作者Shoaib Sadiq

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.14 08:28:00