В моем сборнике сценариев Ansible мне нужно извлечь имя (например, Кори в этом примере), которое имеет самый низкий балл (например, 7).
Как это сделать с данным списком словарей ..?
[
{
"name": "james",
"score": "48"
},
{
"name": "darcy",
"score": "37"
},
{
"name": "cory",
"score": "7"
}
]
Откуда берутся данные? Если вы можете убедиться, что ваш «счет» отображается как int, а не как строка, это должно быть довольно легко.
- hosts: localhost
gather_facts: no
vars:
data: [ { "name": "james", "score": 48 }, { "name": "darcy", "score": 37 }, { "name": "cory", "score": 7 } ]
tasks:
- debug:
msg: "{{ (data |sort(attribute='score'))[0]['name'] }}"
# TASK [debug] *******
# ok: [localhost] => {
# "msg": "cory"
# }