import re
import csv
import json
CONFIG_HEADER = ["ChangeSrc", "timestamp", "power", "bright", "ct", "device_id"]
RUN_HEADER = ["ChangeSrc", "timestamp", "ManualAD", "PIR", "BrightAD", "device_id"]
SEND_HEADER = ["bright", "ct", "power", "L1", "bright_alpha", "bright_beta", "ct_alpha", "ct_beta", "changeSrc"]
def read_data(filename):
config_data = [CONFIG_HEADER]
run_data = [RUN_HEADER]
send_msg = [SEND_HEADER]
for line in open(filename):
match = re.match("(\[.*\]) (.*) message - (\d*): (\{.*\})", line.strip())
mode = match.group(2)
if mode == "recv":
message = json.loads(match.group(4))
if message["topic"] == "config":
config_data.append([message[i] for i in CONFIG_HEADER])
else:
run_data.append([message[i] for i in RUN_HEADER])
else:
message = json.loads(match.group(4))["outputs"][0]["fields"]
message = dict([(i["oKey"], i["oValue"]) for i in message])
send_msg.append([message[i] for i in SEND_HEADER])
return config_data, run_data, send_msg
def write_data(data, filename):
with open(filename, "wb") as f:
writer = csv.writer(f)
writer.writerows(data)
if __name__ == "__main__":
filename = "C:/Users/Administrator/Desktop/test002.txt"
config_data, run_data, send_msg = read_data(filename)
if len(config_data) > 1:
write_data(config_data, "C:/Users/Administrator/Desktop/config_data.csv")
if len(run_data) > 1:
write_data(run_data, "C:/Users/Administrator/Desktop/run_data.csv")
if len(send_msg) > 1:
write_data(send_msg, "C:/Users/Administrator/Desktop/send_msg.csv")