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

如何让Colab交互式data_table渲染HTML、图片及URL而非转义

在Colab data_table里渲染图片、URL和HTML内容的解决办法

核心逻辑

Colab的data_table默认会转义HTML,但从google/colab/_interactive_table_helper.py的源码能看出来,它预留了自定义格式化的口子,咱们可以通过这个绕过转义,直接渲染HTML内容。

具体操作步骤

  • 写自定义列格式化函数:用data_table.DataTable的formatters参数,给需要渲染HTML的列指定一个直接返回原内容的格式化器就行——因为默认的格式化器会转义,咱们自己写的不转义就搞定了。
    from google.colab import data_table
    import pandas as pd
    
    # 造点测试数据,包含图片、链接和自定义HTML
    test_df = pd.DataFrame({
        '预览图': ['<img src="https://example.com/thumb.jpg" width="60">'],
        '跳转链接': ['<a href="https://example.com">点我去示例站</a>'],
        '样式文本': ['<span style="color:green; font-size:14px;">带样式的内容</span>']
    })
    
    # 自定义HTML格式化器,直接返回原始HTML
    def render_html(data):
        return data
    
    # 把格式化器绑定到对应的列上
    data_table.DataTable(test_df, formatters={
        '预览图': render_html,
        '跳转链接': render_html,
        '样式文本': render_html
    })
    
  • 注意事项:
    • 别随便渲染不可信的HTML,小心XSS风险;
    • 带脚本的HTML会被Colab的安全机制拦下来,没法渲染;
    • 如果是动态生成的HTML,先处理成字符串再传给格式化器,别直接传IPython的HTML对象。

源码层面的依据

看_interactive_table_helper.py里的_format_value函数,当检测到值不是纯文本类型(比如咱们自定义格式化器返回的HTML字符串),会跳过转义逻辑,直接把内容传给前端渲染,这就是咱们能实现这个功能的核心原因。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.02 14:22:06