CSV を NDJSON に変換

ここで CSV を NDJSON に変換できます。無料、アカウント不要です。ファイルを上の枠に落とせば、数秒で結果がダウンロードできる状態になります。 変換はお使いのブラウザーの中で行われるので、ファイルはアップロードされません。Windows でも macOS でも Linux でも、iPhone でも Android でも同じように動き、通信を切っても動き続けます。

  • 処理される場所 ブラウザーの中です。ファイルがアップロードされることはありません。
  • 可逆 何も捨てられません。NDJSONはCSVが持っていたものをそのまま保持します。
  • ファイルサイズの上限 1ファイルあたり100MBまで。無料、アカウント不要です。

一度に100ファイルまで。フォーマットが混ざっていても構いません。

ログ処理やストリーム取り込みのための形式

NDJSON は 1 行が 1 つの完結した JSON という形式で、Elasticsearch や BigQuery のような取り込みツール、あるいは行ごとに逐次処理するログ基盤で好まれます。CSV のままではこうしたツールに渡せないことがあります。

この変換は表形式の CSV を、そうしたツールがそのまま読める行単位の JSON に変えます。

見出し行がそのまま JSON のキーになる

CSV の 1 行目は見出し行として扱われ、各列の名前がそのまま出力される JSON オブジェクトのキーになります。2 行目以降がそれぞれ 1 つの NDJSON の行に対応します。

見出しのない CSV や、列が 1 つも認識できないファイルは読み込みの時点でエラーになります。

数値や真偽値は自動で型が付く

「123」や「true」のように数値・真偽値として読める文字列は、そのまま数値型・真偽型として NDJSON に書き出されます。すべてがダブルクォートで囲まれた文字列になるわけではありません。

これは便利な半面、注意も必要です。前ゼロ付きの郵便番号やコード番号のような、見た目は数字でも本来は文字列として扱いたい列は、変換後に数値へ変わってしまうことがあります。

空行は読み飛ばされる

CSV の中にある完全な空行は、行数を揃えるために意図的に読み飛ばされます。データの欠落ではなく、無意味な空の行を出力に持ち込まないための処理です。

列数が足りない行や余分な行があっても、読み込み自体は止まりません。ファイル全体でどの列も認識できない場合にのみエラーになります。

1 行ずつ独立して読み書きできる

書き出された NDJSON の各行は、それ単独で有効な JSON です。ファイル全体を一度に読み込まなくても、1 行ずつ順番に処理できるという NDJSON の利点は、この変換でもそのまま活かされます。

逆に言えば、行と行の間に共通の構造を持たせることはできません。CSV の表構造がそのまま行の並びに置き換わるだけです。

区切り文字は自動で判定される

カンマ以外の区切り文字を使った CSV でも、多くの場合は自動で判定されます。列が 1 つしかないファイルではどの区切り文字も同じに見えてしまうため、判定が難しくなることがあります。

そうした場合は区切り文字を明示的に指定することで、正しく列を分割できます。

文字コードは UTF-8 を前提にする

日本語の列見出しやセルの値もそのまま扱えますが、元の CSV が Shift-JIS や CP932 で保存されている場合、文字化けした状態で読み込まれることがあります。

Excel で作成した CSV は Shift-JIS で保存されていることが多いため、事前に UTF-8 で保存し直しておくと確実です。

まとめて変換する場合

複数の CSV を一度に置いても、順番に処理されて ZIP にまとめて返ってきます。アップロードは発生しませんが、1 回にまとめられるのは 100 ファイルまでです。

大きな表を扱う場合は、実際の制約は端末の空きメモリーです。数百万行に及ぶような CSV は、分割してから変換したほうが安定します。

CSV を NDJSON に変換する手順

  1. お手元の CSV ファイル をこのページに落とすか、押してファイルを選んでください。
  2. 変換先に NDJSON を選びます。変換はブラウザーの中で行われ、ファイルはアップロードされません。
  3. できあがった NDJSON ファイル をダウンロードします。

CSV と NDJSON——何が変わるか

CSVとNDJSONの比較
CSVNDJSON
正式名称Comma-Separated ValuesNewline-Delimited JSON
拡張子.csv.ndjson, .jsonl
メディアタイプtext/csvapplication/x-ndjson
最初の公開19722013
仕様RFC 4180
ライセンスオープン標準オープン標準
現在の位置づけ現行現行
ブラウザで開けるか対応なし対応なし
代わりに検討される形式XLSX, JSON, ParquetJSON

残るもの

失われるものはありません。CSV も NDJSON も中身を劣化なしに保持します。この変換が変えるのは包み方であって品質ではないので、劣化が積み重なる心配をせずに何度でも繰り返せます。

結果を開く

pandasは CSV と NDJSON のどちらも読めるので、別のプログラムを開かずに、結果を元のファイルと並べて確かめられます。

どちらの形式が何のためのものか

CSV は 1972 年に登場しました。 RFC 4180 で規定されています。ファイルが、それを書いた道具より長く生きなければならないなら、この一点には値打ちがあります。

NDJSON は 2013 年から使われています。jqとpandasがこの形式を読めます。

CSV は 1972 年、NDJSON は 2013 年に登場しました。人に渡すならたいてい古いほうが安全で、新しいほうは同じ仕事をより少ないバイト数で片づけます。

CSV から NDJSON:よくある質問

CSV ファイル はどこかにアップロードされますか。

いいえ。この変換は完全にブラウザーの中で行われるので、ファイルが端末から出ることはありません。ご自分で確かめられます。開発者ツールのネットワークタブを開いて、何か変換してみてください。ページそのものと、このサービスの費用をまかなっている分析・広告のリクエストは見えますが、あなたのファイルを運んでいるリクエストはひとつもありません。

CSV から NDJSON への変換は無料ですか。

はい。アカウントも透かしもなく、消費される 1 日の割り当てもありません。お使いの機械の上で動くので、何度でも戻ってきていただけます。ブラウザーが扱えるのは 100 MB までのファイルで、一度に 100 本です。

CSV を NDJSON に変換すると品質は落ちますか。

いいえ。NDJSON は同じ内容を何も捨てずに保持できるので、結果は品質の点で元のファイルと同じです。

CSV から NDJSON への変換は可逆ですか。

失われるものはありません。CSV も NDJSON も中身を劣化なしに保持します。この変換が変えるのは包み方であって品質ではないので、劣化が積み重なる心配をせずに何度でも繰り返せます。

これらのフォーマットについて