Python 从不接受位置参数的集合中设置为Dictionary关键字

Python 从不接受位置参数的集合中设置为Dictionary关键字,python,robotframework,Python,Robotframework,我正在使用集合中的设置为dictionary关键字,将键设置为字符串,将值设置为列表,执行此操作时,我收到错误声明: 关键字Collections.Set To Dictionary在命名参数后获取了位置参数 我希望它声明它不会接受列表作为一个值,我是这个框架的新手。我有一个场景可以将测试结果作为一个列表连同一个键一起传递给其他函数。有没有人能在这方面帮助我,或者提供一个解决方案来实现它。请在下面找到我的代码: @{result_list}= create list ${TEST_N

我正在使用集合中的
设置为dictionary
关键字,将键设置为
字符串
,将值设置为
列表
,执行此操作时,我收到错误声明:

关键字
Collections.Set To Dictionary
在命名参数后获取了位置参数

我希望它声明它不会接受列表作为一个值,我是这个框架的新手。我有一个场景可以将测试结果作为一个列表连同一个键一起传递给其他函数。有没有人能在这方面帮助我,或者提供一个解决方案来实现它。请在下面找到我的代码:

@{result_list}=    create list    ${TEST_NAME}    "User Should be logged in"    ${Actualresult}   ${Status}

set to dictionary    &{Test_result_dict}    ${tid}    ${result_list}
如果您需要更多信息,请告诉我。

我认为这一行:

set to dictionary    &{Test_result_dict}    ${tid}    ${result_list}
应改为:

set to dictionary    ${Test_result_dict}    ${tid}    ${result_list}
因此,您应该使用
$
。这意味着您将变量引用为标量,而不是字典。以下是报告的相关部分

描述了您到底遇到了什么问题

在实践中,这意味着词典的各个条目都是 作为命名参数传递给关键字。假设 &{USER}具有值{'name':'robot','password':'secret'},则 以下两个测试用例是等效的

*** Test Cases *** Constants
    Login    name=robot    password=secret

Dict Variable
    Login    &{USER}
当您使用
&
时,字典的元素作为命名参数传递,这将导致
${tid}
${result\u list}
变量导致“命名参数后的位置参数”错误

使用
$
时,将传递字典本身