Behave REST API自动化示例表空值插入时JSON转义异常问题
问题原因
Behave在解析Examples表中的空白单元格时,会将空白内容默认封装为带双引号的空字符串字面量"",你当前的自定义解析函数直接返回原始匹配文本,因此序列化到JSON时会被转义为"\"\""。
修复方案
调整parse_nullable_string函数的处理逻辑,对匹配到的文本做清洗,移除外层包裹的双引号、修剪空白后返回即可,修改后的完整代码如下:
import parse from behave import given, register_type @parse.with_pattern(r'.*') def parse_nullable_string(text): # 先修剪首尾空白,再移除外层包裹的双引号 cleaned_text = text.strip() if cleaned_text.startswith('"') and cleaned_text.endswith('"'): cleaned_text = cleaned_text[1:-1] # 返回处理后的文本,空白单元格清洗后会得到纯空字符串 return cleaned_text register_type(NullableString=parse_nullable_string) @given('params "{a:NullableString}" and "{b:NullableString}"') def set_params(context, a, b): context.a = a context.b = b
验证逻辑
调整后Examples表中的空白单元格会被解析为纯空字符串"",序列化到JSON后与预期一致,非空值的解析逻辑不受影响,同时兼容手动在单元格填写""表示空值的场景。
内容的提问来源于stack exchange,提问作者Apratim Chaudhuri
相关产品推荐
相关产品推荐

