![](/img/trans.png)
[英]Is it possible in Robot Framework to define a list in a dictionary?
[英]Compare list of dictionary in Robot Framework
我有两个字典列表列表,我想将第一个列表字典的值与第二个字典列表进行比较
例如:
Dictionary A contains [{Name:C}, {Name:A}, {Name:B}]
Dictionary B contains [{Name:A}, {Name:B}, {Name:C}]
如何获取 A 的第一个字典 {Name:C} 并检查它是否存在于字典 B 中。
您想查看某些字典列表是否包含至少一个映射'name': 'C'
字典?
any(d['name'] == 'C' for d in list_of_dict if 'name' in dict)
如果我正确理解您的问题,您应该可以使用内置的 Collections 库来执行此操作。 此代码获取一个字典中的值并检查该值是否存在于另一个字典中。
*** Settings ***
Library Collections
*** Variables ***
&{DICTONARY_ONE} = name1=a name2=b name3=c name4=d
&{DICTONARY_TWO} = name1=c name2=a name3=d name4=b
*** Test Cases ***
Dictonary Test
@{dictonary2_list} = Get Dictionary Values ${DICTONARY_TWO}
:For ${item} in @{dictonary2_list}
\ Dictionary Should Contain Value ${DICTONARY_ONE} ${item}
如果这不是你所追求的,那么集合中应该有一些东西可以让你做你需要的。 这是文档的链接。
http://robotframework.org/robotframework/latest/libraries/Collections.html
我希望这会有所帮助。
无论是字典还是字符串,只要是列表的一部分都可以进行比较。
*** Settings ***
Library Collections
*** Test Case ***
Dictionary Validation
${dict1}= Create Dictionary Name A
${dict2}= Create Dictionary Name B
${dict3}= Create Dictionary Name C
@{li}= Create List ${dict3} ${dict1} ${dict2}
@{lj}= Create List ${dict1} ${dict2} ${dict3}
:For ${item1} in @{li}
\ List Should Contain Value ${lj} ${item1}
万一比较是在字典的一部分(不是完整的字典)上,我们需要考虑另一种方式。 让我知道它是否有帮助!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.