无法访问机器人框架中的字典内的列表内的字典

时间:2017-06-27 15:17:02

标签: python robotframework

我想获得项目a的价值 结构就像

${dict1}  Create Dictionary  a=1  b=2
${dict2}  Create Dictionary  x=1  y=2
${list1}  Create List  ${dict1}  ${dict2}
${master_dict}  Create Dictionary  payload=${list1}

现在我知道,我可以使用以下逻辑来间接访问项目

${dict}  Get From List  &{master_dict}[payload]  0
${item}  Set Variable  &{dict}[a]

但我想知道,有没有直接的方式来访问它。我已经尝试了

${item}  Set Variable  &{master_dict.payload[0]}[a]

${item}  Set Variable  @{master_dict.payload[0]}[a]

1 个答案:

答案 0 :(得分:2)

使用机器人extended variable syntax时,你必须记住你提供的内容必须是有效的python。在您的情况下,这意味着payload需要"payload"a需要"a"(或单引号等价物)。

如果您在python代码中执行此操作,它将如下所示:

item = master_dict['payload'][0]['a']

因此,在机器人内部,花括号内的所有内容都需要看起来相同。例如:

${item}=  set variable  ${master_dict['payload'][0]['a']}

您还可以将值视为字典并将最后一部分移到花括号之外,在这种情况下,您只需要在花括号内部引用。

${item}=  set variable  &{master_dict['payload'][0]}[a]