$ {read} =读取Csv文件$ {readcsv}
@ {read} =转换为列表$ {read}
:FOR $ {counter} IN RANGE @ {read}
登录到控制台$ {counter}
它读取数据[['Ramu Govidan'],['Ajith'],['Alagu'],['Mohana'],] 20150925 15:51:56.716:INFO:@ {read} = [['Ramu Govidan'] | ['Ajith'] | ['Alagu'] | ['Mohana']] 但是它给出了错误FOR IN RANGE的转换参数失败:TypeError:预期的数字,得到列表..对于循环的下一个例子
$ {values} =获取字典值$ {new dic}
@ {values} =转换为列出$ {values}
:FOR $ {counter} IN RANGE @ {values}
记录$ {counter}
记录循环
为此@ {values} = [1 | 2 | 3] 但是for循环生成输出1,它不会生成2和3。任何人都可以告诉回答这个问题。
答案 0 :(得分:2)
您需要使用IN
,而不是IN RANGE
。后者期待一个数字,前者迭代列表中的每个项目。由于您有一个列表,因此您想使用IN
:
| | :FOR | ${item} | IN | @{values}
如果你真的想要一个数字而不是一个项目,你可以在项目的长度上使用IN RANGE
:
| | ${len}= | get length | ${values}
| | :FOR | ${count} | IN RANGE | ${len}
从机器人框架用户指南,Normal For Loops部分(强调我的):
在正常for循环中,从值列表中分配一个变量, 每次迭代一个值。语法以:FOR开头,冒号开头 需要将语法与普通关键字分开。下一个细胞 包含循环变量,后续单元格必须有IN,并且 最终单元格包含要迭代的值。这些值可以 包含变量,包括列表变量。
以下是用户指南的摘录,在For-In-Range Loop部分(强调我的):
与其他for循环类似,for-in-range循环以:FOR开头 并且循环变量在下一个单元格中。 以这种格式可以 只有一个循环变量,它包含当前循环索引。该 下一个单元格必须包含IN RANGE,后续单元格必须包含限制。