Stop 01 · Programming & CS FoundationsTopics · 12/12

File I/O & JSON/CSV Handling

Part of the AI Engineer Roadmap

In short

Datasets arrive as CSV files, configs as JSON, LLM outputs as JSON lines. Reading and writing these formats correctly is the plumbing behind every AI project.

Reading and writing files, plus parsing JSON and CSV — the everyday format of datasets, configs and API responses in AI work.

The purple blob holds an open ruled register in one hand and nested gift boxes in the other.

Think of it like this

The hostel register and the gift box

A CSV is like the hostel entry register: every row is one person, every column the same field. JSON is like a gift box with smaller boxes inside, each labelled. Flat things suit the register, nested things suit the box.

Watch it happen

CSV in, JSON out

open()
read rows
transform
json.dump
closed

1/5with open('students.csv') opens the file and promises to close it when the block ends.

The big ideas

What you need to know

Use with open(...)

The with block closes the file for you. Forgetting to close can lose data that was never flushed to disk.

Pass encoding='utf-8'

Names with Hindi or Tamil characters break without it on some systems. Always say the encoding.

CSV values are all text

'85' is a string until you convert it. The csv module doesn't guess types, pandas does.

JSON maps to dicts and lists

json.load gives you dicts and lists. json.dump writes them back. JSON Lines (.jsonl) stores one JSON object per line.

See it in code

Walk through the code

python
1import csv2import json3 4with open("students.csv", newline="", encoding="utf-8") as f:5    rows = list(csv.DictReader(f))6 7for row in rows:8    row["marks"] = int(row["marks"])9    row["passed"] = row["marks"] >= 4010 11with open("students.json", "w", encoding="utf-8") as f:12    json.dump(rows, f, indent=2, ensure_ascii=False)13 14with open("students.json", encoding="utf-8") as f:15    back = json.load(f)16print(back[0])

1/4Open the CSV and read every row as a dict keyed by the header.

newline="" is what the csv docs recommend when opening CSV files. ensure_ascii=False keeps non-English names readable in the JSON.

Save yourself the pain

Common mistakes

Oops

Opening a file with 'w' when you meant to add to it, wiping everything.

Do this instead

Use 'a' to append. 'w' empties the file the moment it opens.

Oops

Splitting CSV lines with line.split(',') yourself.

Do this instead

Use the csv module. It handles commas inside quoted fields like "Mumbai, MH".

Your mission

Convert a CSV to JSON

~20 min

Quick check

You read a CSV with csv.DictReader and try row['age'] + 1. What happens?

Go deeper

  1. 1Practice reading/writing CSV with the `csv` module and JSON with the `json` module.
  2. 2Learn to handle encoding issues and malformed rows gracefully.
  3. 3Load a real dataset file end-to-end into a usable Python structure.

More topics at this stop

Stuck on this topic? Ask an Insider

Get 1:1 guidance from people who've walked this exact path — on the InsideEdge app.

Download
InsideEdge