当前,我想运行一个for循环。但是我不知道我的清单有什么限制。因此,在这种情况下,我想计算一个特定KEY的出现次数accountAccountId,它是JSON格式的列表。如何计算JSON数据中KEY的出现次数?
{"cardAccountList":[
{
"accountId": "1234",
},
{
"accountId": "1111"
}]}
答案 0 :(得分:1)
您想要执行的操作可以在Robot Framework中完成,但是如果您遇到的现实问题更加复杂,请考虑使用自定义Python关键字。仅仅因为您可以,并不总是意味着您应该这样做。
在下面的json文件中,我在"accountId": "1234"
之后删除了逗号。它从文件加载json,然后将其转换为对象(字典/列表/字典),然后循环浏览列表以检查子字典中是否存在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