diff --git a/backend/app/services/csv_parser.py b/backend/app/services/csv_parser.py index a121a76..06fbb42 100644 --- a/backend/app/services/csv_parser.py +++ b/backend/app/services/csv_parser.py @@ -76,7 +76,16 @@ def parse_csv(content: bytes, filename: str = "") -> list[ParsedCase]: and logged. """ text = content.decode("utf-8-sig") # Handle BOM - reader = csv.DictReader(io.StringIO(text)) + + # Auto-detect delimiter (comma vs semicolon) from first few lines + try: + dialect = csv.Sniffer().sniff(text[:2048], delimiters=",;\t") + delimiter = dialect.delimiter + except csv.Error: + delimiter = "," + logger.debug("CSV delimiter detected as %r for %s", delimiter, filename) + + reader = csv.DictReader(io.StringIO(text), delimiter=delimiter) cases: list[ParsedCase] = [] errors: list[str] = [] skipped = 0