提问人:Gyro Mixes 提问时间:11/14/2023 更新时间:11/14/2023 访问量:23
机器人框架中的字典中仅更新了最后一次迭代值
only last iteration value is being updated in a dictionary in robot framework
问:
gtx
[Arguments] @{crdnvlslst_params_args}
${dictx} Create Dictionary
${dictx_card_vals} Create Dictionary
${lenofcard}= Get Length ${crdnvlslst_params_args}
FOR ${element} IN @{crdnvlslst_params_args}
${card} ${cardtext}= Evaluate "${element}".split("=")
FOR ${x} IN RANGE 1 ${lenofcard}+${1}
${card_vals} Set Variable ${x}
Set To Dictionary ${dictx_card_vals} card_head=${card_vals} card_val=${EMPTY}
END
Set To Dictionary ${dictx} ${card} ${dictx_card_vals}
Log To Console ${dictx}
END
它给出的输出:
{'C1': {'card_head': 4, 'card_val': ''}, 'C2': {'card_head': 4, 'card_val': ''}, 'C5': {'card_head': 4, 'card_val': ''}, 'C6': {'card_head': 4, 'card_val': ''}}
但预期输出应该是:
{'C1': {'card_head': 1, 'card_val': ''}, 'C2': {'card_head': 2, 'card_val': ''}, 'C5': {'card_head': 3, 'card_val': ''}, 'C6': {'card_head': 4, 'card_val': ''}}
我是机器人框架的新手,请帮忙。
我尝试了各种方法。 就像使用临时词典来存储,然后 update.it 不起作用。请帮忙
答:
0赞
Kachida
11/14/2023
#1
在提供的代码片段中,对于外部 for 循环的每次迭代,内部循环将运行四次。因此,它会导致将相同的值分配给 ${dictx_card_vals} 字典变量。尝试更改代码,如下所示 为了解决这个问题并实现预期的输出,请考虑修改您的代码,如下所示:
gtx
[Arguments] @{crdnvlslst_params_args}
${dictx} Create Dictionary
${dictx_card_vals} Create Dictionary
${lenofcard}= Get Length ${crdnvlslst_params_args}
${x}= Set Variable ${0}
FOR ${element} IN @{crdnvlslst_params_args}
${card} ${cardtext}= Evaluate "${element}".split("=")
${x} evaluate ${x}+${1}
Set To Dictionary ${dictx_card_vals} card_head=${x} card_val=${EMPTY}
Set To Dictionary ${dictx} ${card} ${dictx_card_vals}
END
评论
0赞
Gyro Mixes
11/15/2023
仍然获得相同的输出。{'C1': {'card_head': 4, 'card_val': ''}, 'C2': {'card_head': 4, 'card_val': ''}, 'C5': {'card_head': 4, 'card_val': ''}, 'C6': {'card_head': 4, 'card_val': ''}}
评论