我正在尝试从yumoutput
打印出多个属性,但这只打印出最后一个属性(repo
)。如何使用map
打印yumoutput
的多个属性?
- name: yum updates
yum:
list: updates
register: yumoutput
- debug:
msg: "{{yumoutput.results |map(attribute='name') | map(attribute='repo') |list }}"
yumoutput包含以下属性:
{
"arch": "x86_64",
"name": "libgcc",
"release": "3.el6",
"repo": "epel",
"version": "4.4.7",
"yumstate": "available"
}
答案 0 :(得分:0)
如何使用
ui->tableView->setModel(scoreModel); //ui->tableView->setEditTriggers(QAbstractItemView::DoubleClicked); ui->tableView->verticalHeader()->hide(); ui->tableView->resizeColumnsToContents(); ui->tableView->resizeRowsToContents(); //ui->tableView->setSelectionMode(QAbstractItemView::SingleSelection); ui->tableView->setSelectionBehavior(QAbstractItemView::SelectRows); ui->tableView->horizontalHeader()->setStretchLastSection(true);
从yumoutput打印出多个属性?
在这种情况下,您无法使用map
。
过滤器按顺序工作,因此在map
之后,您有一个列表(正式为地图生成器对象),其值仅为map(attribute='name')
密钥,且name
的信息不可用后续过滤器。
相反,您可以使用JMESPath查询获得所需的结果:
repo
或者如果您只想要嵌套的值列表:
- debug:
msg: "{{ yumoutput | json_query(my_query) }}"
vars:
my_query: "results[].{name: name, repo: repo}"