Ansible 如何将输出作为没有括号和 u 的变量

Wan*_*exa 5 ansible ansible-playbook

我有来自 ansible 的查询结果,我尝试将结果用作变量

我的剧本是这样的

- name: Query
  oracle_sql:
    username: "{{ user }}"
    password: "{{ password }}"
    service_name: "{{ service_name }}"
    sql: "select smth  from table where smth like 'OK_%'"
  register: smth
Run Code Online (Sandbox Code Playgroud)

结果被格式化为:

"msg": [
    [
        "SMTH"
    ]
]
no stdout, no stderr
Run Code Online (Sandbox Code Playgroud)

在此之后,我想使用我的变量:

- name: echo
  shell: echo {{ smth.msg[0] }} > /tmp/test
Run Code Online (Sandbox Code Playgroud)

输出是这样的:

[uSMTH]
Run Code Online (Sandbox Code Playgroud)

如何删除括号和'u'?我知道这是一个列表,但我无法摆脱它。

我试图从 yaml 或 json 格式转换而没有运气,这最后添加了一些回车

| to_yaml 
| to_json
| to_nice_yaml
| to_nice_json
Run Code Online (Sandbox Code Playgroud)

有什么建议吗?

Zor*_*che 5

您返回的结果是列表的列表。这是一个行列表,其中包含该行中的单元格列表。

尝试这样的事情。

- name: echo
  shell: echo {{ smth.msg[0][0] }} > /tmp/test
Run Code Online (Sandbox Code Playgroud)