我有一个这样的Json文件。PFB代码:
"properties " : {
"xyz" : {
"username" : "abc@gmail.com",
"password" : "abc@123",
"phonenumber" : "1235",
},
"ABC" : {
"username" : "abc@gmail.com",
"password" : "abc@123",
"phonenumber" : "1345",
},
关键字将类似于:
Do operation for properties
[Arguments] ${username} ${password} ${phonenumber}
Log ${username}
Log ${password}
Log ${phonenumber}
我的问题是:
1)json文件包含很多东西,但是我只需要从文件中获取属性。我将如何从整个json文件中获取属性,并直接将诸如username,password,phonenumber这样的参数传递给上述关键字。 / p>
2)如何为该逻辑编写关键字,以便我们仅更改json文件以添加更多属性,例如xyz,abc,我们将添加任意数量的属性,它将自动获取,并且关键字为我们提供所需的结果所有属性,无论我们在json文件中正在修改。
答案 0 :(得分:3)
如果我对您的理解正确,那么您的问题摘要是:a)如何以这种形式在Robotframework中读取和解析json文件,以及b)将每条记录的属性传递给此关键字。
可以使用Get File
从文件系统读取文件。
一个人可以使用python的json
模块(更具体地说是loads()
方法)读取json文件-它需要一个字符串,并返回一个python对象。
您的“ json”示例是完全无效的json,因此,我们假设“属性”位于文件内部某处(深度3级)。
${the file as string}= Get File c:\\the\\path\\to\\the\\file.json
${parsed}= Evaluate json.loads("""${the file as string}""") json
${properties}= Set Variable ${parsed["top"]["child"]["properties"]}
现在变量properties
是一个字典,带有两个键-“ ABC”和“ xyz”;您只需对其进行迭代,然后将每个子词典的子关键字传递给关键字。
FOR ${key} IN @{properties}
${sub dict}= Get From Dictionary ${properties} ${key}
Do operation for properties ${sub dict}[username] ${sub dict}[password] ${sub dict}[phonenumber]
END