Как прочитать требуемый ключ, значения из ответа json и сохранить его в формате json с помощью фреймворка робота? - PullRequest
1 голос
/ 11 ноября 2019

Я пытаюсь прочитать требуемый ключ и значения из JSON Response и сохранить его в файле JSON.

У меня есть пример упрощенного формата json, как показано ниже:

 ${API_Output}= {
"data": {
"resources": {
"edges": [
{
"node": {
    "tags": [],
   }
},
{          
  "node": {
   "tags": [
      {
        "name": "app",
        "value": "e2e"
      },
      {
        "name": "Cost",
         "value": "qwerty"
      }
  }
},
{          
  "node": {
   "tags": [
      {
        "name": "app",
        "value": "e2e"
      },
      {
        "name": "Cost",
         "value": "qwerty"
      },
        {
        "name": "test",
         "value": "qwerty"
      }
  }
}
]
}
}
}

Здесь,Я читаю теги name и value, которые присутствуют. Я использовал ключ словаря «установить в словарь», но он печатает только последний ответ тегов.

Я хочу знать, как добавить или добавить данные в словарь и сохранить их в формате JSON.

Код робота, который я использовал:

 ${dict1}=        Set Variable  ${API_Output}
 ${cnt}=     get length     ${dict1['data']['resources']['edges']}
 ${edge}=   set variable      ${dict1['data']['resources']['edges']}

 run keyword if   ${cnt}==0     set test message    The resources count is 
  Zero(0)
  log to console  ${cnt}-count

: FOR    ${item}    IN RANGE   0    ${cnt}
 \    ${readName}=    Set Variable     ${edge[${item}]['node'] 
       ['configuration']}
 \    ${readvalue2}=    Set Variable     ${edge[${item}]['node']['tags']}
  \    ${tag_Count}=    get length     ${edge[${item}]['node']['tags']}
 \    ${tag_variable}=   set variable   ${edge[${item}]['node']['tags']}
 \    forkeyword       ${tag_Count}   ${tag_variable}    ${readName}

 ${req_json}    Json.Dumps    ${dict}
 Create File  results.json  ${req_json}


forkeyword
[Arguments]       ${tag_Count}      ${tag_variable}     ${readName}
@{z}=   create list
 : FOR    ${item}    IN RANGE   0    ${tag_Count}
     \   ${resourceName}=    run keyword if     ${tag_Count} > 0   set 
     variable    ${readName['name']}
     \   log to console  ${resourceName}-forloop
     \   ${readkey}=     set variable   ${tag_variable[${item}]['name']}
     \   ${readvalue}=     set variable   ${tag_variable[${item}]['value']}
     \   set to dictionary     ${dict}     resourceName   ${resourceName}
     \   set to dictionary  ${dict}    ${readkey}     ${readvalue}
 set suite variable ${dict}

Выводв файле Values.json я получаю только последние значения тегов.

        {
        "name": "app",
        "value": "e2e"
      },
      {
        "name": "Cost",
         "value": "qwerty"
      },
        {
        "name": "test",
         "value": "qwerty"
      }

Но мне нужны все значения тегов обоих тегов. Кто-нибудь может подсказать мне, как я могу использовать словарь или список ключевых слов? хранить ответ всех тегов в файле. Я новичок в робототехнике, поэтому извиняюсь за ошибку.

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