如何从嵌套字典中获取值?

时间:2016-10-14 22:30:43

标签: python dictionary robotframework

我是机器人和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

1 个答案:

答案 0 :(得分:2)

使用extended variable syntax时,必须将代码视为python。由于键是字符串,因此需要正确引用它们。以下是文档中的相关部分:

  
      
  1. 大括号内的表达式被计算为Python表达式,因此基本变量名称将替换为其值。   如果由于语法无效或评估失败而导致评估失败   查询属性不存在,引发异常并进行测试   失败。
  2.   
${current_key} =  Get Dictionary Keys  ${robot_dict['Name1']['nickname']['Girl']['Height']}