Robot Framework中使用Get Value From Json的JsonPath参数时始终报KeyError
问题解决:Robot Framework中Get Value From Json报KeyError的原因及修复
问题根源
你的报错是因为Robot Framework会解析参数中的$符号,把$.foo.bar误认为是变量引用,进而尝试直接以$.foo.bar作为key从字典${tmp}中取值——显然这个key不存在,所以抛出KeyError。
修复方案
方案1:给JsonPath表达式加引号
给$.foo.bar包裹单/双引号,避免Robot Framework错误解析$符号,让它作为字符串参数传递给关键字:
Library JSONLibrary *** Test Cases *** Example ${tmp} = Convert String To JSON {"foo": {"bar": [1,2,3]}} Log to console tmp: ${tmp} ${values_test}= Get Value From Json ${tmp} '$.foo.bar' Log to console values_test: ${values_test}
方案2:简化路径表达式(适配旧版本JSONLibrary)
如果你的JSONLibrary版本较老,可能不支持带$前缀的JsonPath,可以直接使用点分隔的层级路径:
${values_test}= Get Value From Json ${tmp} foo.bar
方案3:升级JSONLibrary到最新版
执行以下命令升级库,确保支持标准JsonPath语法:
pip install --upgrade robotframework-jsonlibrary
验证效果
修改后运行测试,控制台会正确输出values_test: [1, 2, 3]。
内容的提问来源于stack exchange,提问作者melez
相关产品推荐
相关产品推荐

