Есть ли красивый способ фильтрации мапы по значению одного из полей. Что то типа big_map | filter_map(item { if item['some_property'] == "foo"}) | collect ?
selectattr не подходит?
selectattr('someproperty', 'equalto', 'foo')
'ansible.parsing.yaml.objects.AnsibleUnicode object' has no attribute 'someproperty'
дык, имя свойста например important
Да без разницы, просто нет такого аттрибута. Как пишет Тимур, как будто selectattr('someproperty', 'equalto', 'foo') работает со списком.
Если вы пытаетесь натравить фильтр на словарь, то ничего удивительного
Эту задачу можно решить. Например можно преобразовать мапу в лист с помощью dict2items Затем получившийся лист отфильтровать через selectattr/rejectattr Затем снова собрать мапу из получившегося с помощью items2dict
Спасибо. Я так и сделал в итоге. Днем ещё дошёл до dict2items, а потом фильтрация.
Обсуждают сегодня