[英]Why does json_query return an empty string in a set_fact?
I tried to get metrics2 and metrics3 value like below:我试图获得metrics2和metrics3的值,如下所示:
- hosts: localhost
tasks:
- set_fact:
param:
- - {metrics1: A, metrics2: B, metrics3: C}
- {metrics1: D, metrics2: E, metrics3: F}
- {metrics1: G, metrics2: H, metrics3: I}
- - {metrics1: J, metrics2: K, metrics3: L}
- {metrics1: M, metrics2: N, metrics3: O}
- {metrics1: P, metrics2: Q, metrics3: R}
parseParam: "{{ param | json_query('[][].[metrics2, metrics3]') }}"
- debug:
var: parseParam
and the returned value is null:并且返回值为空:
"parseParam": ""
What should I do?我应该怎么办?
You won't be able to access param
in the set_fact
that defines it.您将无法访问定义它的param
中的set_fact
。
A way around is to declare a variable local to that task, and use it:一种解决方法是声明该任务的本地变量,并使用它:
- set_fact:
parseParam: "{{ _param | json_query('[][].[metrics2, metrics3]') }}"
param: "{{ _param }}"
vars:
_param:
- - {metrics1: A, metrics2: B, metrics3: C}
- {metrics1: D, metrics2: E, metrics3: F}
- {metrics1: G, metrics2: H, metrics3: I}
- - {metrics1: J, metrics2: K, metrics3: L}
- {metrics1: M, metrics2: N, metrics3: O}
- {metrics1: P, metrics2: Q, metrics3: R}
If you don't need the param
variable outside of the set_fact
itself, you can even drop its assignation in a fact, of course.如果您不需要set_fact
本身之外的param
变量,当然,您甚至可以在事实中删除它的分配。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.