#python #list #dictionary #robotframework
#python #Список #словарь #robotframework
Вопрос:
У меня есть два списка списка словарей, и я хочу сравнить значение первого списка словаря со вторым списком словаря
Например:
Dictionary A contains [{Name:C}, {Name:A}, {Name:B}]
Dictionary B contains [{Name:A}, {Name:B}, {Name:C}]
Как взять 1-й словарь A {Name: C} и проверить, существует ли он в словаре B.
Комментарии:
1. Не могли бы вы уточнить свой вопрос и вставить свой код? У вас есть 2 «списка терминов» или «список списков терминов»?
Ответ №1:
Вы хотите посмотреть, содержит ли какой-либо список словарей хотя бы один словарь, который отображает 'name': 'C'
?
any(d['name'] == 'C' for d in list_of_dict if 'name' in dict)
Комментарии:
1. Я хочу сравнить оба значения списка словарей и возвращает true, если значения обоих словарей одинаковы. Я пытаюсь в robot Framework. Был бы признателен, если бы вы помогли в Robot framework.
Ответ №2:
Если я правильно понимаю ваш вопрос, вы должны быть в состоянии сделать это, используя встроенную библиотеку коллекций. Этот код взял значения в одном словаре и проверил, существует ли значение в другом.
*** Settings ***
Library Collections
*** Variables ***
amp;{DICTONARY_ONE} = name1=a name2=b name3=c name4=d
amp;{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
Я надеюсь, что это поможет.
Комментарии:
1. Как насчет того, есть ли у меня список словарей. Я попробовал приведенный выше тестовый пример со списком словарей, но я не смог увидеть результат
Ответ №3:
Будь то словарь или строка, если это часть списка, его можно сравнивать.
*** 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}
На всякий случай, если сравнение проводится по части словаря (не полного словаря), нам нужно подумать о другом способе. Дайте мне знать, если это поможет!