我是机器人和Python的新手。我有一个嵌套字典,我需要获取值,但我无法访问它们。
${result} = Get Info from_here=location mode=aggregate
@{keys}= Get Dictionary Keys ${result}
${robot_dict}= Create Dictionary
:FOR ${key} IN @{keys}
\ Set To Dictionary ${robot_dict} ${key}=${result['${key}']}
Log Many ${robot_dict}
######Output from robot_dict is:
#{'Name1':
# {'nickname':
# {'Name': 'Name1', 'FirstName': 'Full', 'Boy':
# {'Age': 'N/A', 'Single': '0'},
# 'Girl':
# {'Height': '229057', 'Weight': 'N/A'}
# }
# },
#'Name2':{'nickname':
# {'Name': 'Name2', 'FirstName': 'Full', 'Boy':
# {'raw_pkt_count': '229059', 'Age': 'N/A'},
# 'Girl':
# {'Height': '0', 'Weight': 'N/A'}
# }
# }
#}
#############
试过这个:
${current_key} = Get Dictionary Keys ${robot_dict[Name1][nickname][Girl][Height]}
######Error: Resolving variable '${robot_dict[Name1][nickname][Girl][Height]}' failed: KeyError: 0
而且:
${current_key} = Get Dictionary Keys ${robot_dict} Name1.nickname.Girl.Height
#######Error: Dictionary does not contain key Name1.nickname.Girl.Height
答案 0 :(得分:2)
使用extended variable syntax时,必须将代码视为python。由于键是字符串,因此需要正确引用它们。以下是文档中的相关部分:
- 大括号内的表达式被计算为Python表达式,因此基本变量名称将替换为其值。 如果由于语法无效或评估失败而导致评估失败 查询属性不存在,引发异常并进行测试 失败。
醇>
${current_key} = Get Dictionary Keys ${robot_dict['Name1']['nickname']['Girl']['Height']}