对底层规则进行切割,转规则

# msg = u'alert iec104, match asduType:{47}|causetxType:{6}|apciType:{0}'
def whilt_rule(msg):
if msg == None :
return msg
try:
foo_dict = {}
proto_details_str = msg.strip().replace('{', '').replace('}', '').replace(',', '').split(' ')[-1]
for kv_str in proto_details_str.split('|'):
kv_list = kv_str.split(':')
k = kv_list[0].strip()
v = kv_list[1].strip()
foo_dict [k] = v
if kv_str not in foo_dict:
foo_dict.update(foo_dict)
except:
return {}

return foo_dict

原文地址:https://www.cnblogs.com/Adalia-Ting/p/10636942.html