我不完全确定为什么我会收到字典键错误。我尝试使用=符号创建一个多级别的dict,并在指标上获得关键错误,但不会在前两个上。
index.cshtml
和
doc['timestamp']
两者都运行良好,但当它达到指标时,它会给我一个指标关键错误。我不完全确定原因。
doc['instance_id']
答案 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
,然后插入嵌套字典。