如何将字典的字典分配给robot文件中的变量

2024-10-02 14:30:04 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个变量&;{userList}我给它赋值如下:

&{userList}                 id={rand_id}    extension={rand_extn}

然后,我将测试用例中的{rand_id}和{rand_extn}替换为:

${uni_id}=    Generate Random String    2    [NUMBERS]
${uni_extn}=    Generate Random String    4    [NUMBERS]
: FOR    ${key}    IN    @{userList.keys()}
\    ${updated_val}=    Replace String    ${userList["${key}"]}    {rand_id}    ${uni_id}
\    Set To Dictionary    ${userList}    ${key}    ${updated_val}
\    ${updated_val}=    Replace String    ${userList["${key}"]}    {rand_extn}    ${uni_extn}
\    Set To Dictionary    ${userList}    ${key}    ${updated_val}

现在我想创建一个可以嵌套字典的变量,但我不知道怎么做。我是这样做的:

&{multipleUserList}         id={rand_id}    extension={rand_extn},  id={rand_id2}    extension={rand_extn2}

然后我想替换如下值:

${uni_id}=    Generate Random String    2    [NUMBERS]
${uni_extn}=    Generate Random String    4    [NUMBERS]
${uni_id2}=    Generate Random String    2    [NUMBERS]
${uni_extn2}=    Generate Random String    4    [NUMBERS]
: FOR    ${key}    IN    @{multipleUserList.keys()}
\    ${updated_val1}=    Replace String    ${multipleUserList["${key}"]}    {rand_id}    ${uni_id}
\    Set To Dictionary    ${multipleUserList}    ${key}    ${updated_val1}
\    ${updated_val2}=    Replace String    ${multipleUserList["${key}"]}    {rand_extn}    ${uni_extn}
\    Set To Dictionary    ${multipleUserList}    ${key}    ${updated_val2}
\    ${updated_val3}=    Replace String    ${multipleUserList["${key}"]}    {rand_id2}    ${uni_id2}
\    Set To Dictionary    ${multipleUserList}    ${key}    ${updated_val3}
\    ${updated_val4}=    Replace String    ${multipleUserList["${key}"]}    {rand_extn2}    ${uni_extn2}
\    Set To Dictionary    ${multipleUserList}    ${key}    ${updated_val4}

当我运行此程序并打印${multipleUserList}的值时,我从${uni_id2}和${uni_extn2}获取值,但是${uni_id}和${uni_extn}的值不会出现:

{u'id': u'60', u'extension': u'4858'}

请帮助我获得所有的价值观。当我必须创建多个用户时,我正在创建RESTAPI的主体


Tags: tokeyidstringrandomgeneratereplaceuni
2条回答

字典通常只能有唯一的键。您可以看一看at this old discussion——因为Robot基本上只是Python之上的一个层,所以这里应用相同的规则。您正试图使用不同的值多次分配键id和键extension。这样做的目的是用新值更新现有键,而不是添加新键

在Robot中Set To DictionaryCollections Library中有一个关键字,可用于将多个键值对添加到现有字典中

作为一个示例,下面将实现在同一个字典中有两个唯一Id键和两个唯一扩展键的情况。这样,它们在执行期间不会被覆盖

Set to Dictionary    ${multipleUserList}    id-1=${rand_id}    extension-1=${rand_extn}    
...                  id-2=${rand_id2}    extension-2=${rand_extn2}

请注意,字典与$一起使用,而不是与&一起使用

还想指出的是,您当前的字典生成系统没有维护idextension值之间的连接。字典没有排序,因此如果值之间的连接很重要,则应考虑其他一些组织方法

相关问题 更多 >