作为Robot Framework中验证的一部分,我有以下数据(存储为${response}(作为get请求响应:
{
"interfaces": [
{
"name": "eth0",
"status": "ready",
"macAddress": "xx:xx:xx:xx:xx:xx",
"ipv4": {
"mode": "DHCP",
"address": "127.0.0.1",
"mask": "255.255.255.0",
},
"ipv6": {
"mode": "DISABLED",
"addresses": [],
"gateway": "",
}
}
],
"result": 0
}
And I would like to get value of key ipv4 and store in variable
3 library is requestlibrary collection httplibrary.http
is there anykeyword to save this value ? please help me
您可以使用给定的代码获取并存储Value:
def get_activation_code():
print(dict["data"]["user"]["activationCode"])
return dict["data"]["user"]["activationCode"]
如果您提供更多关于"发送到另一个API"任务的信息,我也可以帮助您,但此方法将提供activationCode
。dict
指的是你所说的作为回应而得到的给定词典。
当你已经从某个地方得到响应时,我猜你已经导入了requests
-库?
向另一个API发送内容的方法是通过post
-命令:
r = requests.post(url = the_url_of_the_target_api, data = get_activation_code())
然后,您可以用获取响应
response = r.text
print(response)
您得到的响应是一个字符串,使用python的标准json
库将其转换为dict:
${as dict}= Evaluate json.loads("""${response}""") json
现在,您可以在Robot Framework中使用它作为一个普通的字典:
${ipv4}= Set Variable ${as dict['interfaces'][0]['ipv4']}
您可以使用请求库来访问:
Create Session server http://mywebsite.com #You the ROOT URL here
${response}= Get Request server #You put the URI here
${var_dict}= Evaluate json.loads("""${response.content}""") json
${ipv4}= Set Variable ${var_dict}[interfaces][ipv4]
这将把ipv4中的所有密钥存储在变量${ipv4}
中