flask_crud_app/process_csv.py

16 lines
580 B
Python

import csv
from io import TextIOWrapper
from config import item_attributes
def get_csv_data(file):
csv_file = TextIOWrapper(file, encoding='utf-8')
reader = csv.DictReader(csv_file, delimiter='|')
# Validate CSV headers based on config
required_headers = set(item_attributes.keys())
if not required_headers.issubset(reader.fieldnames):
raise ValueError(f"CSV file must include headers: {', '.join(required_headers)}.")
# Extract data dynamically based on config
return [{attrib: row[attrib] for attrib in item_attributes} for row in reader]