Skip to main content
CheckTown
Dane

Konwerter CSV do JSONL: tworz pliki JSON Lines

Opublikowano 5 min czytania
W tym artykule

Czym jest JSON Lines?

JSON Lines (znany również jako JSONL lub Newline-Delimited JSON, NDJSON) to format tekstowy, w ktorym każdy wiersz jest poprawnym obiektem JSON. W przeciwieństwie do zwykłego JSON, ktory opakowuje wszystko w tablice, JSONL umieszcza jeden rekord w wierszu bez otaczajacych nawiasow. Dzięki temu jest idealny do streamingu, dopisywania i przetwarzania dużych zbiorow danych wiersz po wierszu.

Typowy plik JSONL wygląda tak: każdy wiersz zawiera kompletny obiekt JSON z własnymi kluczami i wartościami. Nie ma przecinkow między wierszami ani otaczajacej tablicy. Ta prostota czyni format potężnym dla potokow danych, plikow logow i zbiorow danych machine learning.

Dlaczego JSONL jest ważny

JSONL stal sie preferowanym formatem dla kilku ważnych przypadkow użycia we współczesnej inżynierii danych i platformach chmurowych.

  • Przetwarzanie strumieniowe -- poniewaz każdy wiersz jest niezależny, możesz przetwarzac pliki wiersz po wierszu bez ładowania całego zestawu danych do pamięci, co jest krytyczne dla plikow wielogigabajtowych
  • Importy BigQuery i chmurowe -- Google BigQuery, Amazon Athena i inne chmurowe hurtownie danych natywnie obsługują JSONL do ładowania danych, czyniacs go standardowym formatem importu danych chmurowych
  • Zbiory danych machine learning -- wiele frameworkow ML, w tym Hugging Face, fine-tuning OpenAI i trening BERT, oczekuje danych w formacie JSONL z jednym przykladem na wiersz
  • Pliki logow i strumienie zdarzen -- logi aplikacji często używają JSONL, poniewaz nowe zdarzenia moga byc dopisywane do pliku bez modyfikowania istniejących treści lub utrzymywania składni tablicy

Wypróbuj za darmo — bez rejestracji

Konwertuj CSV do JSONL →

Konwersja CSV do JSONL

Konwersja CSV do JSONL mapuje każdy wiersz w pliku CSV na obiekt JSON, gdzie nagłówki kolumn staja sie kluczami.

  • Nagłówki jako klucze -- pierwszy wiersz pliku CSV dostarcza nazw właściwości dla każdego obiektu JSON, wiec nagłówki kolumn powinny byc czyste i spojne
  • Wykrywanie separatora -- konwerter obsługuje separatory przecinek, średnik, tabulator i pipe, automatycznie wykrywając format lub pozwalając go jawnie okreslics
  • Wnioskowanie typow -- wartości numeryczne sa konwertowane na liczby JSON zamiast łańcuchów, a puste komorki moga byc wyświetlane jako null lub całkowicie pominiete w zależności od preferencji

Często zadawane pytania

Jaka jest różnica między JSONL a zwykłym JSON?

Zwykły JSON opakowuje wszystkie rekordy w tablice z nawiasami kwadratowymi i rozdziela je przecinkami. JSONL umieszcza jeden obiekt JSON na wiersz bez opakowania tablicowego i bez przecinkow między rekordami. Oznacza to, ze możesz dopisywac do pliku JSONL bez modyfikowania istniejących treści, przetwarzac go wiersz po wierszu bez pełnego parsera i streamowac go bez buforowania całego pliku.

Kiedy powinienem używać JSONL zamiast CSV?

Używaj JSONL, gdy dane maja zagnieżdżone struktury, niespojne kolumny lub musza byc konsumowane przez API i usługi chmurowe. CSV jest lepszy dla prostych danych tabelarycznych otwieranych w arkuszach kalkulacyjnych. JSONL zachowuje typy danych (liczby, boolean, null), podczas gdy CSV traktuje wszystko jako tekst. JSONL obsługuje również wartości zawierające przecinki i znaki nowej linii bez problemow z ucieczka.

Jakie rozszerzenie pliku powinienem używać?

Najczęściej spotykane rozszerzenia to .jsonl i .ndjson. Niektore narzędzia akceptuja tez .json z jednym obiektem na wiersz. Używaj .jsonl dla jasności, poniewaz od razu mowi każdemu patrzacemu na plik, ze jest on rozdzielany znakami nowej linii, a nie standardowym JSON. BigQuery i większość narzędzi chmurowych akceptuje wszystkie trzy rozszerzenia.

Czy pliki JSONL moga byc streamowane?

Tak, to jedna z głównych zalet JSONL. Poniewaz każdy wiersz jest niezależny i samodzielny, możesz czytac i przetwarzac jeden wiersz na raz za pomoca prostej logiki readline w każdym języku programowania. To sprawia, ze JSONL jest idealny do przetwarzania zbiorow danych zbyt dużych, by zmiescic sie w pamięci, w przeciwieństwie do zwykłego JSON, ktory wymaga parsowania pełnej struktury tablicy.

Powiązane narzędzia