Как я могу извлечь одно значение, используя другое значение в json в рамках робота - PullRequest
1 голос
/ 23 января 2020

В рамках проверки в Robot Framework у меня есть следующие данные (сохраненные как $ {resp}) в качестве ответа на запрос получения:

{
   "numberOfElements": 2,
   "data": [
      {
         "id": "1",
         "accId": "123456789",
         "total": 13,
         "isEnabled": false
      },
      {
         "id": "2",
         "accId": "987654321",
         "total": 52,
         "isEnabled": false
      }
   ],
   "last": true
}

Из вышеприведенного json я хочу извлечь идентификатор, чей accId 123456789. Как я могу использовать параметры условия для поиска значения, используя любое другое значение из json. Я реализовал этот код для проверки numberFfElemets

${json_resp} =    Set Variable    ${resp.json()}
${numberOfElements}  set variable  ${json_resp['numberOfElements']}
should be equal as numbers  ${numberOfElements}  2

Ответы [ 2 ]

1 голос
/ 27 января 2020

Получил следующее решение этой проблемы, и оно работает для меня:

${uuid}=  set variable
:FOR  ${i}  IN  @{json_resp['data']}
\   ${uuid}=  run keyword if  '${i['id']}'=='123456789'     get uuid with id   ${i}
    log to console  ${uuid}
Get UUID With Id
    [Arguments]  ${content_body}
    ${uuid}=  Get From Dictionary  ${content_body}  uuid
    [Return]  ${uuid}
0 голосов
/ 23 января 2020

Простой шаг - попытайтесь преобразовать ваш json в словарь и l oop мысленный словарь.

 ${json_resp} =    Set Variable    ${resp.json()}
 ${json}=    evaluate    json.loads('''${json_resp}''')    json
  :FOR  ${i}  IN  @{json['data']}
  \   log to Console      ${i['accId']}

Тогда вы сможете получить доступ к accId.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...