我是 Ansible/json 的新手,我正在尝试解析以下 json:
{
"resultCPU": {
"changed": false,
"msg": "All items completed",
"results": [
{
"ansible_facts": {
"CPU": "6",
"VM": "tigger"
},
{
"ansible_facts": {
"CPU": "4",
"VM": "pooh"
},
我需要设置这个 json 中项目的值,以便 pooh=4 和 tigger=6。稍后我将需要参考这两个值(有关如何执行此操作的建议也会有所帮助)。
我尝试使用 cpuvm "{{ resultCPU.results |selectattr('VM') |map(attribute='CPU')|list }}"
,但它抱怨“'dict object' has no attribute VM”。
我做错了什么?
答案 0 :(得分:0)
您的 selectattr
忽略了 ansible_facts
和您尝试 results: []
之间的 VM
。谢天谢地,map
kwarg 理解点符号
attribute
together
filter 也可能会让您感兴趣
至于“我稍后需要参考这两个值(有关如何执行此操作的建议也会有所帮助)”。这通常是 set_fact:
的用途,但如果没有关于您尝试过的内容和期望的形状的更多细节,则很难给出更具体的答案