python键dict错误多级dict

时间:2016-03-04 02:43:11

标签: python python-2.7 dictionary

我不完全确定为什么我会收到字典键错误。我尝试使用=符号创建一个多级别的dict,并在指标上获得关键错误,但不会在前两个上。

index.cshtml

doc['timestamp']

两者都运行良好,但当它达到指标时,它会给我一个指标关键错误。我不完全确定原因。

doc['instance_id'] 

2 个答案:

答案 0 :(得分:5)

您必须在使用之前创建子词典:

doc = {}
doc['timestamp'] = datetime.now()    
doc['instance_id'] = "MyMac"

cpu_dict_returned = get_cpu_info() 
doc['metrics'] = {}
doc['metrics']['cpu_usage'] = {}
doc['metrics']['cpu_usage']['user_cpu'] = cpu_dict_returned['user_cpu']
doc['metrics']["cpu_usage"]['system_cpu'] = cpu_dict_returned['system_cpu']
doc['metrics']["cpu_usage"]['idle_cpu'] = cpu_dict_returned['idle_cpu']
doc['metrics']["cpu_usage"]['cpu_count'] = cpu_dict_returned['cpu_count']

答案 1 :(得分:0)

您可以使用字典理解更简洁地完成此操作:

doc = {}
doc['timestamp'] = datetime.now()    
doc['instance_id'] = "MyMac"

cpu_dict_returned = get_cpu_info() 
doc['metrics'] = {
    'cpu_usage':
        {k: cpu_dict_returned.get(k) 
         for k in ['user_cpu', 'system_cpu', 'idle_cpu', 'cpu_count']}
}

请注意,首先创建子字典cpu_usage,然后插入嵌套字典。