Верховна Рада України
Портал відкритих даних

Формати даних – CSV

CSV (від англ. Comma-Separated Values – значення, що розділені комами) – текстовий відкритий формат, призначений для представлення таблиць (масивів, наборів) даних, де кожний рядок – це запис таблиці, а значення окремих полів у рядку розділені спеціальними символами (delimiter), зазвичай комами. Щоб завантажити записи таблиці за найменуванням полів (а не за порядковими номерами), додатково потрібно мати опис її структури – назви та формат полів.

Більшість програм широко трактують цей формат і допускають використання інших розділових символів, наприклад, табуляції (TSV) чи коми з крапкою. Це дозволяє спростити розбір записів, якщо значення полів можуть включати зарезервовані символи, щоб їх не замінювати на інші послідовності («екранувати»). Опис та приклади даних в форматі CSV .

Як і будь-який текстовий файл (з розширенням .txt або .csv), таблиця в форматі CSV має наступні параметри: кодування (Windows-1251, KOI-8, UTF-8 тощо) і формат кінця рядків. Різниця у символах розділення рядків залежіть від операційної системи (для Unix – один символ CR (CHR 0x0D), для Mac – LF (CHR 0x0A), а для Windows – пара символів CR LF).

До групи відкритих текстових форматів даних з розділовими символами також відноситься – INI, який спочатку був розроблений для MS Windows, а потім став використовуватися в інших операційних системах. Він призначений для збереження налаштувань програми після завантаження (Initialization), де кожний рядок – іменований параметр програми, а після розділового символу = («дорівнює») знаходиться його значення. Дані можуть бути поділені на секції – блоки параметрів, які записуються в квадратні дужки. Після коми з крапкою можна додати коментар, який не є даними та не обробляється. Приклад:

[main]
path=C:\Work\
log=0
; Коментар

Такий запис даних дозволяє людині переглядати та легко редагувати значення параметрів. Перевагою INI над класичним CSV є те, що порядок значень в переліку можна міняти, а пусті параметри взагалі вилучати.

Якщо поля таблиці записати в форматі INI в рядок через табуляцію, після цього кожний запис таблиці зберегти на окремому рядку, то ми отримаємо розширений формат CSV, за допомогою якого можна обробляти іменовані значення таблиці без додаткового опису структури, як для звичайного CSV. Таким чином можна зберігати таблиці зі складними структурами в простому компактному текстовому вигляді. Наприклад:

id=1	name=Назва1
id=2	name=Назва2	comm=Коментар

Формат CSV ідеально підходить для великих табличних даних (Big Data), тому його обробка може відбуватися у потоці – без завантаження всього масиву в пам’ять. Як приклад, файли журналів роботи вебсерверів (.log також різновид текстового формату), якщо їх не чистити, можуть досягати кілька гігабайт. Але для складних невеликих структур краще підходить наступний формат.



вгору