python - 无法访问列表内的字典,该列表又位于机器人框架的字典内

标签 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]

最佳答案

使用机器人时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]

关于python - 无法访问列表内的字典,该列表又位于机器人框架的字典内,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44783991/

相关文章:

Python gzip 模块在 ubyte 文件上无法按预期工作

python - 求最小差平方和的算法

python - 如何使用文件中的随机代理/UA 制作 annonimizer?

listener - 如何在 Robot Framework 中的监听器和(一个或多个)测试用例之间传递信息?

python - 模板化机器人测试用例并不总是运行安装和拆卸关键字

python - 如何检查两个文件中的行是否相互包含

selenium - session 未创建异常 : Message: session not created: This version of ChromeDriver only supports Chrome version 81

loops - 在 Robot Framework 的循环中包含循环

testing - 在机器人框架中以毫秒为单位获取时间的关键字是什么?

python - 在python中,下面有什么区别,哪个更好