if len(alarm_dict) == 0: if flux > source_query_result[item - 1][1] > source_query_result[item - 2][1] > source_query_result[item - 3][1]: # print(f'出现异常值,时间:{d_datetime}, 值:{flux}') alarm_dict[d_datetime] = [{d_datetime: [flux, 1]}] env_time = d_datetime else: # 非第一次出现超出阈值进行记录操作 alarm_dict[env_time] = alarm_dict[env_time].append({d_datetime: [flux, 1]})
时间: 2024-03-27 22:38:48 浏览: 47
这段代码中也有问题,`list.append()` 方法没有返回值,所以不能将其返回值赋给字典的某个键。正确的写法应该是:
```
if len(alarm_dict) == 0:
if flux > source_query_result[item - 1][1] > source_query_result[item - 2][1] > source_query_result[item - 3][1]:
# print(f'出现异常值,时间:{d_datetime}, 值:{flux}')
alarm_dict[d_datetime] = [{d_datetime: [flux, 1]}]
env_time = d_datetime
else:
# 非第一次出现超出阈值进行记录操作
if env_time not in alarm_dict:
alarm_dict[env_time] = []
alarm_dict[env_time].append({d_datetime: [flux, 1]})
```
首先判断字典 `alarm_dict` 是否为空,如果是,则将当前时间 `d_datetime` 作为键,一个列表 `[{d_datetime: [flux, 1]}]` 作为值,添加到字典中。同时将 `env_time` 设置为当前时间,以便后续的记录操作。如果不是第一次出现超出阈值,则判断 `env_time` 是否在字典 `alarm_dict` 中,如果不在,则将其初始化为空列表。然后在列表末尾添加一个新的字典,字典的键为 `d_datetime`,值为一个列表,其中第一个元素是 `flux`,第二个元素是 `1`。这样就可以实现向字典中不断添加新的字典的功能了。
阅读全文