CSVとは
CSV(Comma-Separated Values)は、データをカンマで区切って並べたテキスト形式です。表計算ソフトが扱う行と列の構造を、プレーンテキストとして表現できるもっともシンプルなフォーマットといえます。
1970年代から使われている歴史の長い形式で、RFC 4180 として仕様が整理されています。Excel、Google スプレッドシート、データベースのエクスポート、業務システム間のデータ連携など、あらゆる場面で目にする機会があるでしょう。
手元の CSV を今すぐ JSON にしたい場合は CSV to JSON 変換ツール に貼り付けてください。登録もファイルアップロードも不要で、変換はすべてブラウザ内で完結します。
CSVの基本構造
行と列
1行が1レコード、カンマで区切られた各要素が1フィールドです。
田中太郎,30,東京
佐藤花子,25,大阪
鈴木一郎,35,名古屋
ヘッダー行
先頭行を列名(ヘッダー)として扱うのが一般的です。ヘッダーがあることで、各フィールドが何を意味しているのかが明確になります。
name,age,city
田中太郎,30,東京
佐藤花子,25,大阪
鈴木一郎,35,名古屋
ヘッダー行は仕様上必須ではありませんが、実務ではほぼ必ず含めます。ヘッダーがないと、3番目のフィールドが都市名なのか部署名なのか、データだけでは判断できません。
ダブルクォートのルール
フィールド内にカンマや改行が含まれる場合は、フィールド全体をダブルクォートで囲みます。
name,comment
田中太郎,"趣味は読書、ランニングです"
佐藤花子,"東京都渋谷区
神宮前1-2-3"
フィールド内にダブルクォート自体が含まれる場合は、ダブルクォートを2つ重ねてエスケープします。
title,note
商品A,"サイズは""M""です"
このルールを知らずにデータを作ると、パースが失敗する原因になります。
区切り文字の種類
「Comma-Separated Values」という名前ですが、実際にはカンマ以外の区切り文字を使うファイルも CSV と総称されます。
| 形式 | 区切り文字 | よく使われる場面 | 拡張子 |
|---|---|---|---|
| CSV | カンマ , |
最も一般的。Excel やスプレッドシートの標準 | .csv |
| TSV | タブ | バイオインフォマティクス、一部の DB エクスポート | .tsv |
| セミコロン区切り | セミコロン ; |
小数点にカンマを使う欧州圏(ドイツ語版 Excel など) | .csv |
| パイプ区切り | パイプ | |
レガシーシステムで散見される | .csv .txt |
多くの CSV パーサーは区切り文字を指定できるため、これらの違いは扱いやすいことがほとんどです。日本語圏では、欧州で作られた CSV を開くとセミコロン区切りになっていて列がずれる、というケースに注意してください。
CSVとExcel・スプレッドシートの関係
Excel で「名前を付けて保存」からファイル形式に CSV を選ぶと、CSV ファイルが出力されます。逆に、CSV ファイルをダブルクリックすると Excel が起動して表形式で表示されます。
ただし、注意点もあります。Excel は CSV を開くときに独自の型推論を行うため、先頭がゼロの数値(007)が 7 に変換されたり、日付として解釈されたくない文字列が勝手に日付になったりすることがあります。
Google スプレッドシートでも CSV のインポート・エクスポートが可能です。「ファイル」から「ダウンロード」を選び「カンマ区切り形式」で CSV を取得できます。
文字コードに注意(Shift-JIS / BOM)
CSV ファイルを開いたときに文字化けする場合、ほとんどは文字コードの問題です。CSV 自体には文字コードを記録する仕組みがないため、開く側が推測するか、外部から指定する必要があります。
日本語の CSV は特に注意が必要です。Windows の Excel から書き出した CSV は Shift-JIS(CP932)になっていることが多く、UTF-8 を前提としたツールで開くと文字化けします。逆に UTF-8 で保存した CSV を古い Excel で開くと文字化けすることもあります。先頭に BOM が付いているかどうかでも挙動が変わります。
文字化けを避けるには、ツール側で文字コードを明示的に指定するか、UTF-8 に統一してから処理するのが安全です。
CSVの限界
CSV はフラットな表形式しか表現できません。階層構造(ネスト)を持つデータには不向きです。
たとえば「1人のユーザーが複数の注文を持つ」といったデータを CSV で表現しようとすると、行を繰り返すか列を増やすかの工夫が必要になり、データの扱いが煩雑になります。
また、CSV にはデータ型の概念がありません。30 が数値なのか文字列なのか、true が真偽値なのか文字列なのか、CSV ファイルだけでは判断できません。
CSVをJSONに変換するメリット
こうした CSV の限界を補うために、JSON への変換が役立つ場面があります。
構造化されたデータへの変換
CSV の各行を JSON オブジェクトに変換すると、ヘッダー行がキー名になり、各フィールドの意味が明確になります。
[
{
"name": "田中太郎",
"age": "30",
"city": "東京"
},
{
"name": "佐藤花子",
"age": "25",
"city": "大阪"
}
]
API連携への活用
REST API にデータを送信する場合、リクエストボディは JSON 形式が一般的です。Excel やスプレッドシートからエクスポートした CSV を JSON に変換すれば、そのまま API のリクエストに利用できます。
プログラムでの処理のしやすさ
JSON に変換しておけば、JavaScript の Array.filter() や Array.map() でデータを加工するのも簡単です。CSV のまま扱うよりも、コードの可読性が上がります。
CSVからJSONへの変換方法
CSV to JSON を使えば、ブラウザ上で CSV を貼り付けるだけで JSON に変換できます。ファイルのアップロードは不要で、データがサーバーに送信されることもありません。
JSON の基本について知りたい方は JSONとは を、変換の詳しい手順は CSVをJSONに変換する方法 を参照してください。CSV のデータを Markdown のテーブルとして README やドキュメントに貼りたい場合は CSV を Markdown テーブルに変換する方法 が、表形式の JSON を Markdown テーブルにしたい場合は JSON を Markdown テーブルに変換する方法 が便利です。
CSV を扱うときの注意
自前でカンマ分割しない
カンマで split するだけの自作パーサーは手軽ですが壊れやすく、クォートされたフィールドやフィールド内の改行、エスケープされたダブルクォートで破綻します。各言語に CSV ライブラリがあるので、それを使うのが安全です。Python は csv モジュール、JavaScript は PapaParse などが定番です。
処理する前に検証する
外部から受け取った CSV は、構造が正しいと決めつけずに検証してから処理します。列数が全行で揃っているか、想定したヘッダーがあるか、必須フィールドが空でないかを確認すると、後段のエラーを減らせます。
今すぐ変換してみる
手元に JSON にしたい CSV ファイルがあれば、CSV to JSON 変換ツールにデータを貼り付けるだけで即座に変換できます。会員登録もファイルアップロードも不要で、すべてブラウザ内で完結します。
まとめ
- CSV はカンマ区切りのシンプルなテキスト形式で、表形式のデータを表現する
- ヘッダー行で各列の意味を定義するのが一般的
- カンマや改行を含むフィールドはダブルクォートで囲む
- Excel やスプレッドシートとの相互運用が容易
- 階層構造やデータ型の表現には限界がある
- JSON に変換することで、API 連携や構造化データとしての活用が広がる
- 変換には CSV to JSON が便利

