CSV⇔JSON Lines(JSONL)互轉

在CSV檔案與JSON Lines(JSONL,每行一個JSON物件的格式)之間相互轉換。可選擇分隔符,欄位不一致的行也會自動合併處理。轉換完全在瀏覽器內完成,不會發送到伺服器。

CSV行與JSONL行的對應關係

CSV表頭行+資料行 name,age,city
Alice,30,Tokyo
轉換後的JSONL(每行一個物件) {"name": "Alice", "age": "30", "city": "Tokyo"}

以表頭行的列名作為鍵,CSV的每一資料行都會變成一個JSON物件,並作為JSONL的一行輸出。反方向(JSONL→CSV)轉換時,所有行中出現過的鍵的並集會成為表頭行,缺少某個鍵的行在對應列中留空。

什麼是 CSV⇔JSON Lines 互轉

CSV⇔JSON Lines 互轉是指將表格形式的 CSV 資料,與每行一個 JSON 物件的 JSON Lines(JSONL)格式相互轉換。本工具使用符合 RFC 4180 標準的解析器讀取 CSV,因此即使是引號內包含逗號或換行符的複雜 CSV 也能正確解析。

本工具支援雙向轉換:CSV→JSONL 時以表頭行的欄名作為鍵,JSONL→CSV 時則以所有行中出現過的鍵的並集作為表頭行。即使各行的鍵數量不同,也能自動對齊欄位,因此既適合整理機器學習資料集,也適合整理日誌檔案。

CSV⇔JSON Lines 互轉的使用方法

  1. 選擇轉換方向 透過標籤頁選擇「CSV → JSONL」還是「JSONL → CSV」。
  2. 輸入資料 在文字框中貼上要轉換的 CSV 或 JSON Lines。手邊沒有資料時,可點擊「載入示例」查看範例。
  3. 選擇分隔符 選擇 CSV 一側使用逗號還是製表符分隔。處理 TSV 檔案時請選擇製表符。
  4. 確認轉換結果 轉換結果會隨輸入自動顯示,行數會顯示在「行數」欄位中。
  5. 複製結果 點擊「複製」按鈕將轉換結果複製到剪貼簿,貼上到其他工具或系統中使用。

用好本工具的小技巧

  • 進行JSONL→CSV轉換時,各行的鍵的數量或順序不一致也沒關係,工具會自動彙總所有行出現過的鍵的並集作為表頭,並對齊各列。
  • 表頭中的空白或重複列會自動替換為 col{列號} 或 名稱_2 這樣的鍵名,避免數值丟失或被覆蓋。
  • 數值、布林值或巢狀的物件/陣列,在CSV單元格中都會以文本形式寫出,因此轉換結果可以直接在Excel等軟體中開啟。
  • 與姊妹工具「CSV→JSON轉換」「JSONL⇔JSON陣列轉換」搭配使用,可以在CSV、JSON陣列、JSONL這三種格式之間自由切換。
  • CSV部分採用符合RFC 4180標準的解析器,能正確處理引號內的逗號與換行符,因此Excel等軟體匯出的複雜CSV也能正確轉換。

CSV⇔JSON Lines 互轉的使用場景

準備機器學習資料集

將試算表中整理好的訓練資料轉換為 JSONL,可直接用作微調資料集。

在試算表中檢視日誌檔案

將以 JSONL 格式匯出的應用程式日誌轉換為 CSV,即可在 Excel 或試算表軟體中開啟以進行篩選和彙總。

合併鍵數量不一致的資料

即使各行欄位數量不同的 JSONL 資料,轉換為 CSV 時也會自動對齊欄位,無需手動整理。

準備寫入 API 或資料庫的資料

將 CSV 資料轉換為 JSONL,可以直接輸入到逐行讀取的匯入流程中。

術語表

CSV
Comma-Separated Values 的縮寫,是一種用逗號分隔數值來表示表格資料的純文字格式。
JSON Lines(JSONL)
一種每行記錄一個 JSON 物件的格式。由於可以按行獨立讀寫,適合對海量資料進行流式處理。
RFC 4180
CSV 檔案的一般格式規範,規定了雙引號括起的儲存格內逗號、換行符、引號的處理方式。
鍵的並集
把多行中出現過的所有鍵(欄名)無遺漏地彙總起來的集合。JSONL→CSV 轉換時,這個並集會成為表頭行。
流式處理
不是一次性將全部資料讀入記憶體,而是按記錄(按行)依次處理的方式。JSON Lines 是與這種處理方式相性很好的格式。

常見問題

CSV適合用電子表格軟體開啟檢視和彙總資料,而JSON Lines可以逐行進行流式解析,因此常用於機器學習資料集和日誌採集工具。本工具可以幫助你在兩種格式之間快速轉換,無需手動處理。

除表頭行以外的每一資料行,都對應JSONL的一行(即一個JSON物件),表頭行的列名會成為該JSON物件的鍵。

可以。進行JSONL→CSV轉換時,工具會收集所有行中出現過的全部鍵,合併為一個表頭行;缺少某個鍵的行,對應列會輸出為空。

支援。只需將“分隔符”選擇為“製表符”,兩個轉換方向都可以直接處理製表符分隔的資料。

不會。所有轉換處理都在瀏覽器內通過JavaScript完成,輸入的內容不會被發送到任何伺服器。
工具君

閒話 ― JSON Lines為何成為機器學習與日誌處理的“通用語言”

推動JSON Lines(JSONL)普及的一大原因,是機器學習資料集的分發方式。大語言模型的微調資料往往由數百萬條“輸入與輸出”配對組成,如果將它們打包成一個JSON陣列,就必須等整個檔案載入並解析完畢後才能讀取任何一條記錄。JSONL將每一行視為一條獨立完整的記錄,從而可以對海量資料集進行流式、增量式處理。

日誌處理領域也因類似原因廣泛採用JSONL。Elasticsearch、Logstash等日誌採集平臺的設計理念是逐條攝取應用產生的事件,而“每行都是獨立結構”的格式,天然比“整體是單一結構”的JSON陣列更契合這種追加寫入、逐行解析的模式。

與此同時,CSV在團隊間資料交接、電子表格查閱等場景中依然根深蒂固。本工具通過直接打通這兩種性質迥異的格式,讓你可以一步將CSV資料接入機器學習流水線,或將JSONL日誌檔案在Excel中開啟檢視。