Как подсчитать вхождения конкретного KEY в полезную нагрузку JSON в среде Robot? - PullRequest
0 голосов
/ 31 октября 2018

В настоящее время я хочу запустить цикл for. Однако я не знаю, каков предел моего списка. Итак, чтобы найти, что я хочу посчитать количество вхождений определенного KEY в этом случае accountId, который является списком в формате JSON. Как посчитать вхождения KEY в данные JSON?

{"cardAccountList":[
{
"accountId": "1234",
},
{
"accountId": "1111"
}]} 

1 Ответ

0 голосов
/ 31 октября 2018

То, что вы хотите сделать, может быть сделано в Robot Framework, но если ваша реальная проблема более сложна, рассмотрите пользовательское ключевое слово Python. То, что ты можешь, не всегда означает, что ты должен.

В файле json ниже я удалил запятую после "accountId": "1234". Он загружает json из файла и затем преобразует его в объект (Dictionary / List / Dictionary), а затем циклически перебирает список, чтобы проверить под-словарь на наличие ключа accountId. Подсчитывает количество раз, когда он его находит.

json.json

{"cardAccountList":[
    {
    "accountId": "1234"
    },
    {
    "accountId": "1111"
    }
 ]
} 

И со следующим кодом робота:

*** Settings ***
Library    OperatingSystem    
Library    Collections    

*** Test Cases ***
TC
    ${json_string}    Get File        ./json.json
    ${json_object}    evaluate        json.loads('''${json_string}''')    json    
    ${count}          Set Variable    ${0}

    ${key_count}    Get Length    ${json_object["cardAccountList"]}

    :FOR    ${item}    IN    @{json_object["cardAccountList"]}
    \    ${status}    Run Keyword And Return Status    
    \                 ...        Dictionary Should Contain Key    ${item}     accountId
    \    
    \    ${count}     Set Variable If    ${status}    ${count+1}    ${count}

    Log To Console    \nCount of accountId is: "${count}"

создает журнал консоли:

==============================================================================
TC                                                                    
Count of accountId is: "2"
| PASS |
------------------------------------------------------------------------------
Folder.Json                                                           | PASS |
1 critical test, 1 passed, 0 failed
1 test total, 1 passed, 0 failed
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...