2017-03-24 13 views
2

ページにGETリクエストを実行するタスクがあります。応答の本文は、次のようなJSONです。JSONレスポンスからフィールドを抽出します。

{ 
    "ips": [ 
    { 
     "organization": "1233124121", 
     "reverse": null, 
     "id": "1321411312", 
     "server": { 
     "id": "1321411", 
     "name": "name1" 
     }, 
     "address": "x.x.x.x" 
    }, 
    { 
     "organization": "2398479823", 
     "reverse": null, 
     "id": "2418209841", 
     "server": { 
     "id": "234979823", 
     "name": "name2" 
     }, 
     "address": "x.x.x.x" 
    } 
    ] 
} 

私はフィールドのIDとアドレスを抽出したい、と(idフィールドのために)しようとした:

tasks: 
    - name: get request           
    uri: 
     url: "https://myurl.com/ips" 
     method: GET 
     return_content: yes 
     status_code: 200 
     headers: 
     Content-Type: "application/json" 
     X-Auth-Token: "0010101010" 
     body_format: json 
    register: json_response 


    - name: copy ip_json content into a file 
    copy: content={{json_response.json.ips.id}} dest="/dest_path/json_response.txt" 

が、私はこのエラーを取得:

フィールド '引数' は無効を持っています値は未定義の変数 を含むように見えます。エラーは 'list object'に 'id'という属性がありません。

問題はどこですか?

答えて

3

The error was: 'list object' has no attribute 'id'

json_response.json.ipsがリストです。

いずれかの要素を選択する必要があります(最初は?):json_response.json.ips[0].idです。

すべてのIDが必要な場合は、たとえばmapまたはjson_queryのフィルタでこのリストを処理してください。

関連する問題