Python 如何在robot框架中将列表连接到字符串

Python 如何在robot框架中将列表连接到字符串,python,robotframework,Python,Robotframework,我正在robot框架中创建一个字符串的md5散列,我想分割这个散列并只保留前32个字符 我尝试使用列表,然后剪切列表,但我无法将列表还原为字符串。这是我的密码: ${test1}= Md 5 ${pwd_arg} ${test3}= Hexdigest ${test4}= Convert To List ${test3} ${test5}= Convert To String ${test4}[0:32] ${test6}= Catenate

我正在robot框架中创建一个字符串的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

感谢您的帮助。

首先,有一种更简单的方法可以在robot中分割列表。而且,
转换为字符串
的工作方式与您希望在代码中使用的方式不同

下面是实现您尝试执行的操作的代码:

${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
关键字连接到另一个字符串

将问题转换为put-如何将列表成员连接到字符串中。
你很接近-关键字
Catenate
非常适合这样做。您必须将不同的值传递给它以连接,而您只传递了一个值,列表变量本身。一次获取所有列表(“它们”-列表成员)的最简单方法是使用格式
@{a list variable}
-带有
@
前缀,框架将解压列表-并将其所有成员作为单独的参数传递。因此,如果列表变量是
${test4}
,则调用

${test6}=    Catenate    SEPARATOR=${EMPTY}    @{test4}
${EMPTY}
是字符串
”的一个系统变量-一个空字符串,在意图上更明确一些。)

这非常类似于python的
“”。事实上,join(一个可伸缩的)


除了这个问题,您的最终目标似乎是从字符串中获取前32个字符。如果是这样的话,有更直接的方法可以做到这一点——只需使用关键词;像这样:

${substring}=    Get Substring    ${test3}    0    32

不熟悉robot框架,但这不会将列表返回到字符串吗
“”.join(${test4}[0:32])
?robot框架使用关键字,我实际上在寻找这种关键字(join)。使用
评估
调用python
join
方法似乎很有效<代码>${test5}=Evaluate'.join(${test4}[0:32])