我正在机器人框架中创建某些字符串的md5哈希,我想拆分此哈希并仅保留前32个字符。
我正在尝试使用列表,然后剪切列表,但是我无法将列表串联回字符串。这是我的代码:
${test1}= Md 5 ${pwd_arg}
${test3}= Hexdigest
${test4}= Convert To List ${test3}
${test5}= Convert To String ${test4}[0:32]
${test6}= Catenate SEPARATOR= ${test4}
这里是日志,基本上我可以剪切列表,但不能将列表中的所有元素重新组合为字符串
INFO : ${test3} = 0e5751c026e543b2e8ab2eb06099daa1d1e5df47778f7787faab45cdf12fe3a8
INFO : ${test4} = ['0', 'e', '5', '7', '5', '1', 'c', '0', '2', '6', 'e', '5', '4', '3', 'b', '2', 'e', '8', 'a', 'b', '2', 'e', 'b', '0', '6', '0', '9', '9', 'd', 'a', 'a', '1', 'd', '1', 'e', '5', 'd', 'f', '4', '7',...
INFO : ${test5} = ['0', 'e', '5', '7', '5', '1', 'c', '0', '2', '6', 'e', '5', '4', '3', 'b', '2', 'e', '8', 'a', 'b', '2', 'e', 'b', '0', '6', '0', '9', '9', 'd', 'a', 'a', '1']
INFO : ${test6} = ['0', 'e', '5', '7', '5', '1', 'c', '0', '2', '6', 'e', '5', '4', '3', 'b', '2', 'e', '8', 'a', 'b', '2', 'e', 'b', '0', '6', '0', '9', '9', 'd', 'a', 'a', '1']
FAIL : b1404d6cc07abe3805e5960771c0ba72 != 0e5751c026e543b2e8ab2eb06099daa1d1e5df47778f7787faab45cdf12fe3a8
Ending test
感谢您的帮助。
答案 0 :(得分:0)
首先,有一种更简单的方法可以在机械手中分割列表。而且,Convert to string
不能按您期望的方式工作。
以下是实现您要执行的操作的代码:
${test4}= Convert To List ${test3}
${test5}= Get Slice From List ${test4} 0 32
${convertListToString}= Evaluate "".join(${test5})
${test6}= Catenate SEPARATOR= ${convertListToString} ${otherStringToCatenate}
Evaluate "".join(${test5})
会将列表转换为字符串,然后您可以使用Catenate
关键字将其连接到其他字符串。
答案 1 :(得分:0)
按原样跳入问题-如何在字符串中连接列表成员。
您很接近-关键字Catenate
非常适合此操作。您必须将要连接的不同值传递给它-并且您只传递了一个变量,即列表变量本身。一次获取所有成员(“他们”-列表成员)的最简单方法是使用格式@{a list variable}
-使用@
前缀,框架将解压缩列表-并传递其所有内容成员作为单独的参数。因此,如果您的列表变量为${test4}
,则调用为
${test6}= Catenate SEPARATOR=${EMPTY} @{test4}
({${EMPTY}
是字符串""
的系统变量,它是一个空字符串,意图上更加明确。)
这与python的"".join(an_iterable)
非常相似-实际上是the keyword's implemention does just that.
除了问题之外,您的最终目标似乎是从字符串中获取前32个字符。如果是这样,则有更简单的方法-只需使用关键字Get Substring
;像这样:
${substring}= Get Substring ${test3} 0 32