python键dict错误多级dict

python键dict错误多级dict,python,python-2.7,dictionary,Python,Python 2.7,Dictionary,我不完全确定我为什么会遇到字典键错误。我试图创建一个带有=符号的多级dict,并在度量上得到一个关键错误,但在前两个上没有 doc['timestamp'] 及 两者都可以很好地工作,但当它到达度量时,它会给我一个度量键错误。我不完全清楚为什么 doc = {} doc['timestamp'] = datetime.now() #doc['instance_id'] = get_cloud_app_name() doc['instance_id'] = "MyMac" cpu_di

我不完全确定我为什么会遇到字典键错误。我试图创建一个带有=符号的多级dict,并在度量上得到一个关键错误,但在前两个上没有

doc['timestamp']

两者都可以很好地工作,但当它到达度量时,它会给我一个度量键错误。我不完全清楚为什么

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

cpu_dict_returned = get_cpu_info()
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']

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

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']

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

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']

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

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\u用法
,然后插入嵌套字典。

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

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\u usage
,然后插入嵌套字典。

谢谢,我不知道我通常通过定义结构来创建dict。谢谢,我不知道我通常通过定义结构来创建dict。