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

如何在Robot Framework中遍历键对应多值的字典?

Robot Framework字典遍历生成指定命令的正确写法

问题场景

我有一个这样的字典:

myDict = {"keyA" : ["valA_1","valA_2"], "keyB" : ["valB_1","valB_2"]}

想要通过for循环遍历它,生成并执行下面格式的命令:

command --arg1 keyA --arg2 valA_1 --arg3 valA_2
command --arg1 keyB --arg2 valB_1 --arg3 valB_2

我试了下面的写法,但达不到预期效果:

FOR  ${key}  IN  @{MY_DICT.keys()}
  FOR  ${val1}  IN  @{MY_DICT.values()[0]}
    FOR  ${val2}  IN  @{MY_DICT.values()[1]}

问题原因

你写的嵌套循环逻辑不对:@{MY_DICT.values()[0]}只会取第一个key对应的列表,而且三层循环会把所有值乱组合,不是每个key对应自己的两个值。

正确写法

方法1:遍历键值对再拆分值列表

FOR    ${key}    ${values}    IN    &{MY_DICT}
    ${val1}    Set Variable    ${values}[0]
    ${val2}    Set Variable    ${values}[1]
    # 替换成你实际执行命令的关键字,比如Execute Command
    Execute Command    command --arg1 ${key} --arg2 ${val1} --arg3 ${val2}
END

方法2:直接在循环里解构值列表

如果你的Robot Framework版本支持,可以一步到位解构值列表,写法更简洁:

FOR    ${key}    ${val1}    ${val2}    IN    &{MY_DICT}
    Execute Command    command --arg1 ${key} --arg2 ${val1} --arg3 ${val2}
END

关键点说明

  • 用&{MY_DICT}可以直接遍历字典的键值对,每次循环取出一个key和它对应的value列表。
  • 第一种方法先拿到完整的value列表,再拆分出两个元素;第二种方法直接在循环参数里把列表拆成两个变量,更高效。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.17 23:22:17