python键dict错误多级dict

Gra*_*kel 0 python dictionary python-2.7

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

doc['timestamp']
Run Code Online (Sandbox Code Playgroud)

doc['instance_id'] 
Run Code Online (Sandbox Code Playgroud)

两者都工作正常,但当它达到指标时,它给我一个指标关键错误.我不完全确定为什么.

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']
Run Code Online (Sandbox Code Playgroud)

Sci*_*rog 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']
Run Code Online (Sandbox Code Playgroud)