Convert pipe-delimited CSV to JSON (no upload)

TL;DR: Fix delimiter/quotes first, then convert CSV to JSON locally (no upload).

What to do when your “CSV” is actually pipe-delimited. Detect separators, avoid column shifts, and convert to JSON without uploading.

How to recognize pipe-delimited files

Not all CSV files use commas. Some exports use | because commas appear frequently inside values.

If every row looks like a|b|c with consistent separators, treat it as a delimiter problem rather than a broken file.

  • Check the header row: does it have the same number of | as data rows?
  • If pasting into a spreadsheet produces one giant column, the delimiter is probably not a comma.

Convert safely: delimiter first, data second

Before you convert to JSON, ensure the delimiter is correctly interpreted. Otherwise the output keys and values will be misaligned.

Convert a 20–50 row sample first. If the JSON looks correct, then run the full file.

Common pitfalls

Pipes can still appear inside values. If that happens, the file should use quotes to protect the value.

If the export did not quote fields properly, you may need to re-export or clean the data.

Also watch out for “mixed” exports where some rows use pipes and others use commas or tabs. In that case, parsing will look random until you standardize the delimiter.

Quick detection and safe re-export

If you can re-export, choose a consistent delimiter and enable quoting for fields that contain the delimiter character. This is the most reliable way to avoid column shifts.

If you can’t re-export, convert a small sample locally and verify: header keys look right, and values don’t merge into a single field.

  • Count separators in the header: it should match most data rows.
  • Check for quotes around values that contain |.
  • Spot-check two rows with “messy” text (addresses, notes) before downloading the JSON.

Trust note: All processing happens locally in your browser. Files are never uploaded.

FAQ

Is pipe-delimited still “CSV”? It’s more accurately “DSV” (delimiter-separated values), but most people still call it CSV.

Can I convert it without uploading? Yes—local converters parse text in the browser without a server round-trip.

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)
Privacy & Security
All processing happens locally in your browser. Files are never uploaded.