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

Databricks中Assert断言消息丢失类型信息的问题及解决方法

Assert断言错误消息中类型信息丢失(Databricks Notebook环境)

问题重现

本地Python 3.10.6环境中,执行以下代码能正常输出包含完整类型信息的断言错误:

num = 5
assert isinstance(num, str), f"type of {num} is {type(num)}"

预期错误输出:

AssertionError: type of 5 is <class 'int'>

但在Databricks Notebook(浏览器访问)中运行相同代码时,类型信息会丢失:

AssertionError: type of 5 is 

原因分析

Databricks Notebook的错误信息通过网页渲染展示,内部会自动解析并过滤疑似HTML标签的内容。type(num)的字符串表示<class 'int'>包含尖括号,被渲染引擎识别为无效HTML标签,因此被过滤移除,导致类型信息丢失。

解决办法

方案1:提取类型名称(简洁直观)

直接获取类型的__name__属性,避免尖括号带来的过滤问题:

num = 5
assert isinstance(num, str), f"type of {num} is {type(num).__name__}"

错误输出:

AssertionError: type of 5 is int

方案2:保留原始类型字符串格式

使用repr()函数生成类型对象的原始字符串表示,确保尖括号内容不会被当作HTML标签过滤:

num = 5
assert isinstance(num, str), f"type of {num} is {repr(type(num))}"

错误输出:

AssertionError: type of 5 is <class 'int'>

方案3:手动构造类型描述

自行拼接无HTML标签风险的描述文本,按需调整格式:

num = 5
assert isinstance(num, str), f"type of {num} is class '{type(num).__name__}'"

错误输出:

AssertionError: type of 5 is class 'int'

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.19 20:22:45