CSV terlihat sederhana sampai ada koma di dalam alamat. RFC 4180 menuliskan aturannya: setiap rekaman berada di satu baris yang diakhiri CRLF, kolom dipisah koma, baris pertama boleh berisi judul kolom, dan setiap rekaman punya jumlah kolom yang sama.
Aturan yang paling sering dilanggar menyangkut tanda kutip ganda. Nilai yang memuat koma, tanda kutip, atau baris baru wajib diapit tanda kutip ganda. Tanda kutip yang memang bagian dari isi ditulis dua kali berturut-turut di dalam apitan itu. Dengan aturan tersebut, satu baris teks tetap dapat dipecah menjadi kolom tanpa menebak.
| Isi nilai | Penulisan di berkas CSV |
|---|---|
| Jl. Merdeka No. 7, Bandung | "Jl. Merdeka No. 7, Bandung" |
| Toko "Sinar" Jaya | "Toko ""Sinar"" Jaya" |
| Bandung | Bandung |
import csv
rekaman = 'B-12,"Gula pasir, 1 kg",15000'
print(rekaman.split(",")) # 4 kolom, salah
print(next(csv.reader([rekaman]))) # 3 kolom, benarMembelah baris dengan split memberi hasil benar sampai satu pelanggan mengetik koma di alamatnya. Modul csv bawaan Python menerapkan aturan RFC 4180, termasuk memasang tanda kutip sendiri saat menulis, sehingga berkas yang dihasilkan terbaca lagi oleh program mana pun.