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

使用PyGWalker在Streamlit中渲染HTML时报TypeError错误求助

解决Streamlit中Pygwalker可视化的TypeError问题

错误原因分析

报错指向proto.srcdoc = srcdoc,说明传递给st.components.v1.html()的walker参数不是有效的HTML字符串,可能是以下情况:

  • pyg.walk()返回的不是字符串类型(比如bytes或None)
  • Pygwalker版本与Streamlit的适配问题
  • DataFrame包含无法被正常序列化的内容

解决方案

1. 验证返回内容的类型与有效性

先添加调试代码,确认walker的类型和内容:

walker = pyg.walk(data, return_html=True)
# 打印类型和前100个字符
print(f"Walker类型: {type(walker)}")
print(f"Walker内容预览: {walker[:100] if walker else '空值'}")

如果输出显示是bytes类型,需要解码为字符串:

walker = pyg.walk(data, return_html=True).decode('utf-8')
st.components.v1.html(walker, width=1100, height=800)

2. 使用Pygwalker官方Streamlit集成方法

Pygwalker提供了专门适配Streamlit的函数,无需手动处理HTML,更稳定:

import pygwalker as pyg
import streamlit as st

# 直接使用st_pygwalker渲染
pyg.st_pygwalker(data, height=800, width=1100)

3. 检查DataFrame数据

确保你的data DataFrame:

  • 不为空
  • 没有包含非标准数据类型(比如自定义对象、复杂嵌套结构)
  • 所有列名和数据都是可序列化的字符串/数值类型

4. 更新依赖版本

如果是版本兼容问题,更新Pygwalker和Streamlit到最新稳定版:

pip install --upgrade pygwalker streamlit

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.20 02:54:57