Bosh sahifa Wiki CSV

CSV

CSV — jadval ko‘rinishidagi ma’lumotni oddiy matnda satr va ustunlarga ajratib saqlaydigan format. To‘liq nomi Comma-Separated Values. Har satr odatda bitta recordni, record ichidagi ajratilgan qiymatlar esa ustunlarni ifodalaydi.

Nomida vergul mavjud bo‘lsa ham amaliyotda semicolon, tab yoki boshqa delimiter ishlatiladigan variantlar ham uchraydi. Shu sababli parser delimiter, quote va encoding qoidalarini aniq bilishi kerak.

Oddiy tuzilma

Misol:

id,name,active
1,Farrukh,true
2,UzbekDevs,true

Birinchi satr header bo‘lishi mumkin.

Keyingi satrlar ayni ustun tartibiga mos recordlar.

CSV formatining o‘zi header majburiyligini belgilamaydi.

Delimiter

Fieldlar delimiter bilan ajratiladi.

Keng tarqalgan delimiterlar:

  • vergul;
  • semicolon;
  • tab;
  • pipe.

Regional son formatida vergul decimal separator bo‘lsa semicolon ishlatilishi mumkin.

Fayl extensioni .csv bo‘lsa ham delimiter avtomatik ma’lum bo‘lmasligi ehtimoli bor.

Quote

Field ichida delimiter, yangi qator yoki quote mavjud bo‘lsa field odatda qo‘shtirnoq bilan o‘raladi:

1,"Sherkulov, Farrukh","Developer"

Quote ichidagi qo‘shtirnoq ko‘pincha ikki marta yoziladi:

1,"U ""Master"" deb ataladi"

Parser oddiy split(",") bilan to‘g‘ri ishlamaydi.

Ko‘p qatorli field

Quoted field ichida yangi qator bo‘lishi mumkin:

id,description
1,"Birinchi qator
Ikkinchi qator"

Satr bo‘yicha qo‘lda o‘qish bunday recordni buzishi mumkin.

CSV library quote state’ni saqlab parse qiladi.

Header ustun nomlarini beradi:

user_id,full_name,created_at

Header afzalligi:

Duplicate yoki bo‘sh headerlar importda rad etilishi mumkin.

Data type

CSV barcha qiymatni matn sifatida ifodalaydi.

15, true, 2026-07-14 yoki bo‘sh fieldning aniq type’i schema orqali belgilanadi.

Parser avtomatik type inference qilsa:

  • boshlang‘ich nol;
  • katta ID;
  • sana;
  • scientific notation

noto‘g‘ri talqin qilinishi mumkin.

Bo‘sh qiymat

Quyidagi holatlar farq qilishi mumkin:

a,,c
a,"",c

Ikkalasi ham bo‘sh string sifatida talqin qilinishi mumkin, lekin application null va empty stringni alohida ko‘rishi ehtimoli bor.

CSVning o‘zi universal null belgisi bermaydi.

Encoding

UTF-8 zamonaviy tizimlar uchun keng tarqalgan.

Ammo eski fayllar boshqa encodingda bo‘lishi mumkin.

Noto‘g‘ri encoding o‘zbek harflari va boshqa Unicode belgilarini buzadi.

Encoding metadata CSV ichida majburiy berilmaydi.

Byte Order Mark

Ayrim dasturlar UTF-8 CSV boshiga BOM qo‘shadi.

Parser birinchi header nomiga BOM belgisi qo‘shib yubormasligi kerak.

Boshqa vositalar BOMni encoding signali sifatida ishlatadi.

Interoperability test qilinadi.

Line ending

Satr yakuni platformaga qarab:

  • LF;
  • CRLF;
  • tarixiy CR

bo‘lishi mumkin.

CSV parser quote ichidagi newline va record newline’ni farqlashi kerak.

Exportda target tizim talabiga mos line ending tanlanadi.

Streaming

Katta CSV to‘liq memory’ga yuklanmasdan recordma-record o‘qilishi mumkin.

Streaming import:

  • memoryni kamaytiradi;
  • progress beradi;
  • batch database yozuvi;
  • xato satr raqami

uchun qulay.

Biroq transaction va partial import siyosati aniq bo‘lishi kerak.

Validation

Import vaqtida tekshiriladi:

Sintaksis to‘g‘ri CSV business jihatdan to‘g‘ri data degani emas.

CSV Injection

Spreadsheet dasturlari =, +, - yoki @ bilan boshlangan fieldni formula deb talqin qilishi mumkin.

Attacker eksport qilingan qiymatga formula joylashtirsa user faylni ochganda xavfli operation yoki tashqi request yuz berishi mumkin.

Untrusted field spreadsheet uchun xavfsiz tarzda neutralizatsiya qilinadi.

Import xavfi

Juda katta yoki maxsus CSV:

  • memory exhaustion;
  • disk to‘lishi;
  • juda uzun field;
  • ko‘p column;
  • nested quote;
  • encoding xatosi

yaratishi mumkin.

File hajmi, field uzunligi va record soni cheklanadi.

Export

Exportda column tartibi va format contract sifatida belgilanadi.

Sana timezone bilan, decimal invariant formatda, ID scientific notationga aylanmaydigan ko‘rinishda yoziladi.

Excel yoki boshqa spreadsheet uchun alohida compatibility talabi bo‘lishi mumkin.

CSV va TSV

TSV tab bilan ajratilgan qiymatlardan foydalanadi.

Tab matnda vergulga qaraganda kamroq uchrashi mumkin.

Ammo field ichida tab yoki yangi qator bo‘lsa quote qoidasi baribir kerak.

Fayl formatini faqat extensionga qarab taxmin qilmaslik kerak.

CSV va JSON

CSV tekis jadval uchun ixcham.

JSON nested obyekt, array va type structure’ni yaxshiroq ifodalaydi.

CSV:

  • analytics export;
  • spreadsheet;
  • bulk import;
  • relational table

uchun qulay.

Nested data CSVda ko‘p fayl yoki custom encoding talab qiladi.

Formula va raqamni saqlash

Spreadsheet katta ID, telefon raqami yoki boshlang‘ich nolli kodni son sifatida talqin qilishi mumkin. Masalan, 00125 qiymati 125ga aylanishi yoki uzun identifikator scientific notationda ko‘rinishi ehtimoli bor. Export contract bunday ustunlarni text sifatida belgilaydi. Import esa spreadsheet ko‘rsatgan qiymatni emas, asl CSV byte’larini tekshiradi.

Qisman import

Bir record xato bo‘lsa butun fayl rollback qilinishi yoki faqat noto‘g‘ri satrlar rad etilishi mumkin. Natija hisobotida satr raqami, ustun va sabab ko‘rsatiladi. Qisman import duplicate retry va referential integrity bilan muvofiqlashtiriladi.

Bog‘liq tushunchalar

Comma-Separated Values, Delimiter, Header, Record, Field, TSV, Data import, Data export, CSV Injection, Encoding, Spreadsheet