Robot Framework遍历字典列表访问键报字符串索引必须为整数错误
错误原因
- 你使用的
evaluate type(${line})写法存在逻辑漏洞:如果${line}本身是符合字典格式的JSON字符串,执行evaluate时会直接把字符串内容作为Python字面量解析为字典对象,所以输出的类型显示为<class 'dict'>,但Robot Framework中存储的${line}变量本质还是字符串类型,并非真正的字典对象,直接按键索引就会触发“字符串索引必须为整数”的错误。 - Robot Framework有独立的字典访问语法,不能直接套用Python原生的
${变量['键名']}写法。
修复方案
第一步:先确认变量的真实类型
修正类型校验的写法,evaluate表达式中直接用$变量名引用Robot Framework变量本身,避免变量内容被提前解析:
${type_string}= evaluate type($line)
执行后输出的才是${line}的真实类型。
第二步:根据真实类型适配处理逻辑
- 如果确认
${line}是字典类型:改用Robot Framework原生字典访问语法即可log to console &{line}[note] - 如果确认
${line}是JSON格式字符串:先将字符串转为字典再访问键FOR ${line} IN @{lines} ${line_dict}= evaluate json.loads($line) modules=json log to console ${line_dict}[note] END
内容的提问来源于stack exchange,提问作者Ankit Modi
相关产品推荐
相关产品推荐

