From 70069228650221dff5077ae98f05b16fb8665f70 Mon Sep 17 00:00:00 2001 From: Julien Ortet <julien@le-filament.com> Date: Wed, 21 Feb 2024 15:48:31 +0100 Subject: [PATCH] Improve data reader --- tools/key_file.py | 32 +++++++++++++++----------------- 1 file changed, 15 insertions(+), 17 deletions(-) diff --git a/tools/key_file.py b/tools/key_file.py index 0b5153c..587b571 100644 --- a/tools/key_file.py +++ b/tools/key_file.py @@ -6,9 +6,10 @@ from datetime import datetime class RepartitionKeyEntryFile: - def __init__(self, data, operation_counter_list): + def __init__(self, data, operation_counter_list, file_type="csv"): self.data = data self.operation_counter_list = operation_counter_list + self.file_type = file_type self.json = self._to_json() def check(self): @@ -41,26 +42,23 @@ class RepartitionKeyEntryFile: def _to_json(self): """ - make data ready to send { "horodatage": [{"id": "value"}, ....]} + Build data { "horodatage": [{"id": "value"}, ....]} + """ + file_reader = {"csv": self._csv} + return file_reader.get(self.file_type)() + + def _csv(self): + """ + read data from csv file { "horodatage": [{"id": "value"}, ....]} """ json = {} counter_list_from_file = self.data[0].split(";") - csv_file = csv.reader(self.data, delimiter=";") - line_count = 0 + counter_list_from_file.remove("Horodate") + csv_file = csv.DictReader(self.data, delimiter=";") for line in csv_file: - if line: - if line_count == 0: - line_count += 1 - continue - # line[0] is horodatage - json[line[0]] = [] - line_count += 1 - counter_count = 1 - for counter in counter_list_from_file[1:]: - json[line[0]].append( - {"id": counter, "key": line[counter_count].replace(",", ".")} - ) - counter_count += 1 + json[line.get("Horodate")] = [] + for counter in counter_list_from_file: + json[line.get("Horodate")].append({"id": counter, "key": line.get(counter).replace(",", ".")}) return json def data_to_send(self, agreement_id, send_empty_key=True): -- GitLab