Python 代码优化:使用 msg_data 处理数据,将数据整理成特定格式
你可以尝试以下修改代码来实现对msg_data的格式处理:
for msg_type_temp in msg_type:
msg_type_temp = str(msg_type_temp)
for dsn in sn_list:
dsn = str(dsn)
msg_data = [{'cpu_manage_usage': u'10', 'cpu_dp_avg_usage': u'4', 'coming_time': '2023-09-13 00:00:17', 'cpu': u'6'}, {'cpu_manage_usage': u'11', 'cpu_dp_avg_usage': u'5', 'coming_time': '2023-09-13 00:11:18', 'cpu': u'7'}, {'cpu_manage_usage': u'11', 'cpu_dp_avg_usage': u'5', 'coming_time': '2023-09-13 00:14:18', 'cpu': u'7'}]
if msg_type_temp not in ret_data['data'].get(dsn, {}):
ret_data['data'].setdefault(dsn, {}).setdefault(msg_type_temp, [])
ret_data['data'][dsn].setdefault('interval', '')
ret_data['data'][dsn].setdefault('data_disk', [])
coming_time = []
for item in msg_data:
coming_time.append(item.get('coming_time'))
ret_data['data'][dsn][msg_type_temp].append(float(item.get(msg_type_temp, 0)))
ret_data['data'][dsn]['{0}_coming_time'.format(msg_type_temp)] = coming_time
if msg_type_temp == 'disk':
ret_data['data'][dsn]['data_disk'].append(item.get('data_disk_usage'))
ret_data['data'][dsn]['data_disk_coming_time'] = coming_time
ret_data['data'][dsn]['interval'] = '1h'
logger.info("get_cpumemdisk_message ret_data length:{0}!".format(len(ret_data['data'][dsn][msg_type_temp])))
这样修改后,ret_data的值将为:
{
"code": 0,
"message": "success",
"data": {
"48443f16f16c9cede62efa44a821dfa00c4013f1": {
"cpu": [6.0, 7.0, 7.0],
"cpu_coming_time": [
"2023-09-13 00:00:17",
"2023-09-13 00:11:18",
"2023-09-13 00:14:18"
],
"cpu_manage_usage": [10.0, 11.0, 11.0],
"cpu_dp_avg_usage": [4.0, 5.0, 5.0],
"interval": "1h"
}
}
}
原文地址: https://www.cveoy.top/t/topic/l3so 著作权归作者所有。请勿转载和采集!