From 6eebd6a095cb53fb66f30fba94b0e4242513cde4 Mon Sep 17 00:00:00 2001 From: candifloss Date: Tue, 11 Feb 2025 13:57:00 +0530 Subject: [PATCH] Checking for valid and invalid csv headers --- process_csv.py | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/process_csv.py b/process_csv.py index c7a755d..539b660 100644 --- a/process_csv.py +++ b/process_csv.py @@ -7,9 +7,16 @@ def get_csv_data(file): reader = csv.DictReader(csv_file, delimiter='|') # Validate CSV headers based on config - required_headers = set(item_attributes.keys()) + required_headers = set(item_attributes.keys()) # Get required headers as per configuration + csv_headers = set(reader.fieldnames) # Get headers present in the csv file + + # Check if the required headers exist if not required_headers.issubset(reader.fieldnames): raise ValueError(f"CSV file must include headers: {', '.join(required_headers)}.") + + # Check for invalid headers + if extra_headers := csv_headers - valid_headers: + raise ValueError(f"Unexpected headers found: {', '.join(extra_headers)}") # Extract data dynamically based on config return [{attrib: row[attrib] for attrib in item_attributes} for row in reader]