2017-03-17 1 views
1

json 응답을 반복하고 ID 및 이름 요소 데이터를 가져오고 싶습니다. 내 응답 json과 내가 시도한 코드는 다음과 같습니다. 누군가 내가 어떤 실수를하고 있는지 알려주실 수 있습니까? 직접 목록의 항목을 반복 할 수 있어야하므로 ${resp.json()}에서로봇 프레임 워크를 사용하여 JSON 배열을 반복하는 방법

[ 
    { 
    "id": 3, 
    "policyRevId": 3, 
    "busId": "POL_0003", 
    "revision": 1, 
    "name": "CIS Microsoft Windows Server 2012 R2 v2.2.1" 
    }, 
    { 
    "id": 2, 
    "policyRevId": 2, 
    "busId": "POL_0002", 
    "revision": 1, 
    "name": "CIS SUSE Linux Enterprise Server 11 Benchmark v 2.0" 

    }, 
    { 
    "id": 1, 
    "policyRevId": 1, 
    "busId": "POL_0001", 
    "revision": 1, 
    "name": "Payment Card Industry (PCI) Data Security Standard version 3.1" 
    } 
] 


*** Settings *** 
Library   RequestsLibrary 
Library   Collections 
Library   strings 


*** Test case *** 

Get Policy With Auth 
    @{auth}= Create List user pass 
    Create Session httpbin https://test123.com/ [email protected]{auth} 
    ${resp}= Get Request httpbin uri=/policies/ 
    :FOR ${i} in ${resp.json()} 
    \ Log ${i} 
    \ ${get_policy_id}= Get Variable Value ${resp.json()[i]['id']} 
    \ ${policy_name}= Get Variable Value ${resp.json()[i]['name']} 
    \ Log ${policy_id},${policy_name} 
+0

이 오류를 받고 있습니까는? 이 코드의 출력은 예상 한 것과 어떻게 다릅니 까? –

+0

@BryanOakley, 사전을 반복하고 ID, 이름 값을 가져 오려고합니다. 출력이 없음으로 표시됩니다. resp.json()은 키 값 쌍을 포함합니다 – Madhu

+0

'$ {i} '를 로그하면 로그에 무엇이 나타 납니 까? –

답변

2

데이터는 목록입니다. @ 그 다음 예제 사항은 :FOR 문에 사용되며, ${item}은 사전보다는 인덱스입니다 :

:FOR ${item} in @{resp.json()} 
\ Log ${item} 
\ ${get_policy_id}= Set variable ${item['id']} 
\ ${policy_name}= Set variable ${item['name']} 
\ Log ${policy_id},${policy_name} 
+0

Thanks @ Bryan. 그것은 효과가 있었다. – Madhu

+0

@ Madhu 당신도 대답 upvote 고려할 수 있습니다 :) –