web-dev-qa-db-ja.com

ブラケットとuなしで変数として出力を取得する方法

Ansibleからのクエリの結果があり、その結果を変数として使用しようとしました

私のプレイブックはこんな感じ

- name: Query
  Oracle_sql:
    username: "{{ user }}"
    password: "{{ password }}"
    service_name: "{{ service_name }}"
    sql: "select smth  from table where smth like 'OK_%'"
  register: smth

結果は次のようにフォーマットされます。

"msg": [
    [
        "SMTH"
    ]
]
no stdout, no stderr

この後、変数を使用したいと思います。

- name: echo
  Shell: echo {{ smth.msg[0] }} > /tmp/test

そしてoutuputはこのようなものです:

[uSMTH]

括弧と 'u'を削除する方法?リストであることは知っていますが、これを取り除くことはできません。

私は幸運なしにyamlまたはjson形式から変換しようとしましたが、これで最後に改行が追加されます

| to_yaml 
| to_json
| to_Nice_yaml
| to_Nice_json

何かアドバイス?

4
Wanexa

返された結果はリストのリストです。つまり、行のリストと、その行内のセルのリストです。

このようなものを試してください。

- name: echo
  Shell: echo {{ smth.msg[0][0] }} > /tmp/test
4
Zoredache