Why your CSV uses semicolons (and how to convert it)
If your “CSV” looks like name;age instead of name,age, you’re not alone. Semicolon CSV is common, especially from Excel in many locales.
Why semicolons happen
In many regions, a comma is used as the decimal separator (e.g. 3,14). To avoid ambiguity in spreadsheets, CSV exporters switch the column separator to a semicolon. The file is still “CSV” in the loose sense, but the delimiter is different.
How to detect it quickly
- Header row contains semicolons between column names.
- Pasting into a spreadsheet splits correctly only with semicolon settings.
- Comma-based parsing yields one huge column.
Conversion workflow (no upload)
- Paste the CSV or select the file locally.
- Convert and verify the first 2–3 objects: keys should match your headers.
- Download JSON and validate shape if you plan to feed it into scripts/APIs.
Trust note: All processing happens locally in your browser. Files are never uploaded.
Practical checklist (fast)
If you’re stuck, use this quick checklist to narrow the problem before you try “random fixes”. Start by validating the input format (syntax first), then confirm shape expectations (array vs object, headers vs rows). Convert a small sample, inspect the output, and only then export the full result.
- Validate: confirm the input is strict JSON/XML/CSV (no stray characters).
- Confirm shape: arrays vs objects; headers vs row lengths; repeated tags vs arrays.
- Test a sample: first 20–50 rows/items are enough to detect parsing issues.
- Export: copy/download the output and re-check it in the consumer (script/spreadsheet/API).
This workflow is privacy-first by design: All processing happens locally in your browser. Files are never uploaded.
Practical checklist (fast)
If you’re stuck, use this quick checklist to narrow the problem before you try “random fixes”. Start by validating the input format (syntax first), then confirm shape expectations (array vs object, headers vs rows). Convert a small sample, inspect the output, and only then export the full result.
- Validate: confirm the input is strict JSON/XML/CSV (no stray characters).
- Confirm shape: arrays vs objects; headers vs row lengths; repeated tags vs arrays.
- Test a sample: first 20–50 rows/items are enough to detect parsing issues.
- Export: copy/download the output and re-check it in the consumer (script/spreadsheet/API).
This workflow is privacy-first by design: All processing happens locally in your browser. Files are never uploaded.
FAQ
Is semicolon CSV “wrong”? No. It’s a normal regional variant.
Why do my columns still shift? Usually quoting issues (values containing semicolons/newlines) or inconsistent rows.
Local verification snippet
Run a quick local check before export/convert:
import csv
from io import StringIO
sample = text[:50000] # keep first chunk for fast local triage
rows = list(csv.reader(StringIO(sample)))
print('rows:', len(rows), 'columns(first row):', len(rows[0]) if rows else 0)