2016-03-04 149 views
0

我不完全確定爲什麼即時獲取字典的關鍵錯誤。我正嘗試使用=符號創建多級字典,並獲取指標上的關鍵錯誤,但不是前兩個。python鍵字典錯誤多級字典

doc['timestamp'] 

doc['instance_id'] 

都工作得不錯,但是當它到達度量它給了我一個指標關鍵錯誤。我不完全確定爲什麼。

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

回答

5

必須使用他們之前創建的子dictionnaries:

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是:

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

謝謝,我從來不知道我通常通過定義結構來創建字典。 –

0

您可以在此更簡潔地使用字典理解做首先創建,然後插入嵌套字典。