如何在Python的Streamlit应用中正确获取并展示Atoti的访问链接
解决Atoti链接在Streamlit中显示为对象而非URL的问题
问题原因
你调用session.link()返回的是Atoti自定义的Link类实例,不是纯字符串格式的链接地址,直接存入DataFrame后,pandas和Streamlit默认只会渲染对象的__repr__结构化表示,不会输出实际的URL。
解决方法
只需要将Link实例转换为字符串格式的URL再存入DataFrame即可,根据你的使用需求可以选择两种实现方式:
方式1:显示纯文本URL
如果只需要展示链接文本内容,直接用str()包裹session.link()即可:
new = pd.DataFrame() # 将Link实例转为纯字符串URL new['Link'] = [str(session.link())] st.dataframe(new)
方式2:渲染可点击的跳转链接
如果需要实现点击即可跳转的效果,可以手动构造HTML的a标签,再用你原有的unsafe_allow_html方式渲染:
new = pd.DataFrame() # 构造可点击的a标签 atoti_link = str(session.link()) new['Link'] = [f'<a href="{atoti_link}" target="_blank">{atoti_link}</a>'] # 关闭HTML转义渲染可点击链接 st.write(new.to_html(escape=False, index=False), unsafe_allow_html=True)
内容的提问来源于stack exchange,提问作者Nithin Reddy
相关产品推荐
相关产品推荐

