Robotframework 字典作为Robot框架中的变量:代码运行正常,但IDE产生错误

Robotframework 字典作为Robot框架中的变量:代码运行正常,但IDE产生错误,robotframework,Robotframework,我正试图将字典设置为一个变量(这样我就可以将它用作一个资源并从另一个文件中访问它的值),有些事情让我发疯 以下是我的代码(仅用于测试目的): 如果我运行它,我得到了预期的结果([WARN]value1),但是IDE(PyCharm)抱怨${SOME DICT}变量没有定义,字典声明没有突出显示为变量或列表 如果我将其更改为和{SOME DICT},IDE将不再抱怨,但测试失败,输出如下: Dict Test

我正试图将字典设置为一个变量(这样我就可以将它用作一个资源并从另一个文件中访问它的值),有些事情让我发疯

以下是我的代码(仅用于测试目的):

如果我运行它,我得到了预期的结果([WARN]value1),但是IDE(PyCharm)抱怨${SOME DICT}变量没有定义,字典声明没有突出显示为变量或列表

如果我将其更改为和{SOME DICT},IDE将不再抱怨,但测试失败,输出如下:

Dict Test                                                             | FAIL |
Keyword 'Collections.Get From Dictionary' got positional argument after named arguments.
这让我莫名其妙:为什么我要用$而不是a&如果这是一本字典,我就要用它来工作?是不是我做错了什么,只是运气好

感谢您提供的任何建议或指导

查看“从字典获取”libdoc,看起来示例显示的与您的工作代码段相同:

关键字实现细节如下:

try:
            return dictionary[key]
        except KeyError:
            raise RuntimeError("Dictionary does not contain key '%s'." % key)
所以,实际上,Robot发送的是dict内容的表示,而不是dict名称,所以可以返回键的值。 这与python中的直接调用相同:

a = {u'key1': u'value1', u'key2': u'value2'}
print(a['key1'])
最后,该KW的libdoc并不简单,但在这种情况下,您的PyCharm机器人插件无法正常工作。 在RED Robot Editor(基于Eclipse)中,正确的大小写不会在编辑器中引发任何警告,错误的大小写提供了有关参数的错误标记(更好,但仍然不清楚到底是什么错误。请归咎于简约的libdoc信息)

另外,我是红色项目的负责人

robot框架中使用键值变量的简单示例 将值设置为字典 从字典中获取值

&{initValues}创建字典key1=value1 key2=value2

设置为Dictionary${initValues}key1=newvalue1

设置为Dictionary${initValues}key2=newvalue2

设置为Dictionary${initValues}key3=newvalue3

${value}从字典获取${intialValues}key1


非常感谢您的回复,我真的很感激!我是一个完全的初学者,我真的很想把事情做好,而了解正在发生的事情是非常有帮助的。谢谢
try:
            return dictionary[key]
        except KeyError:
            raise RuntimeError("Dictionary does not contain key '%s'." % key)
a = {u'key1': u'value1', u'key2': u'value2'}
print(a['key1'])