CSV/TSV パーサー
CSV(Comma-Separated Values)は表形式データのシンプルなフォーマットで、スプレッドシートやデータベースで広くサポートされています。このツールはCSVおよびTSVファイルを解析し、区切り文字を自動検出し、引用フィールドを処理し、フォーマットされたテーブルでデータを表示します。
仕様
よくあるユースケース
- データベースインポート前のCSVエクスポートのプレビュー
- API利用のためにCSVをJSONに変換
- スプレッドシートからのデータエクスポートの検証
- ログファイルやデータダンプの迅速な検査
機能
- 区切り文字の自動検出(カンマ、タブ、セミコロン、パイプ)
- ヘッダー付きフォーマットテーブルとして表示
- JSONオブジェクト配列に変換
- JSON表現のインタラクティブツリービュー
- HTMLテーブルとしてコピー
- 行と列の転置
例
ユーザーデータ
試してみる →ユーザー情報を含むCSVファイル。
name,email,role
Alice,alice@example.com,admin
Bob,bob@example.com,user
Charlie,"charlie@example.com",userヒント
- 最初の行は通常ヘッダーとして扱われます。
- カンマや改行を含むフィールドはダブルクォートで囲みます。
- 引用フィールド内のダブルクォートは""としてエスケープされます。
- TSV(タブ区切り)は多くの引用の問題を回避します。
解説 CSV/TSV パーサー
CSV(Comma-Separated Values)は最も古く、最も広くサポートされているデータ交換フォーマットの1つです。そのシンプルさにもかかわらず、CSVには持続的な相互運用性の問題を引き起こす十分な曖昧さがあります。RFC 4180は標準を定義していますが、多くのプロデューサーはそこから逸脱し、区切り文字、引用、エンコーディング、改行に関する解析の問題を引き起こします。
基本構造は1行につき1レコードで、フィールドはカンマで区切られます。フィールドにカンマ、改行、またはダブルクォートが含まれる場合、ダブルクォートで囲む必要があります。引用フィールド内のダブルクォートは二重にしてエスケープします("")。最初のレコードは一般的にヘッダー行として扱われますが、これは要件ではなく慣例です。
区切り文字のバリエーションは一般的です。TSV(Tab-Separated Values)はタブを使用し、ほとんどの引用の問題を回避します。小数点にカンマを使用する欧州のロケールでは、フィールド区切り文字としてセミコロンを使用することが多いです。パイプ区切りファイルはレガシーシステムに見られます。優れたCSVパーサーは最初の数行を分析して区切り文字を自動検出します。
文字エンコーディングもまた頻繁な問題の原因です。WindowsのExcelはUTF-8ではなくシステムのローカルエンコーディングでCSVを保存します。UTF-8のCSVをExcelで開くと文字化けが表示される場合があります。ファイルの先頭にUTF-8 BOM(バイトオーダーマーク)を追加すると、ExcelにファイルがUTF-8エンコードされていることを通知できます。システム間でCSVファイルを交換する場合は、常に文字エンコーディングを確認してください。
ExcelでCSVデータが正しく表示されない場合、最も一般的な2つの原因はエンコーディングの不一致と区切り文字の不一致です。ローカルエンコーディングを想定するExcelでUTF-8ファイルを開くと文字化けが表示され、BOMを追加することで通常修正されます。区切り文字の問題は、Excelがカンマではなくセミコロンを期待する欧州のロケールで発生します。ファイルをダブルクリックする代わりに「データ」>「テキストから」のインポートウィザードを使用すると、エンコーディングと区切り文字の両方を明示的に制御できます。
RFC 4180によると、カンマ、改行、またはダブルクォートを含むフィールドはダブルクォートで囲む必要があります。引用フィールド内のダブルクォートは二重にしてエスケープします。ほとんどのCSVライブラリはこれを正しく処理しますが、ファイルが手動編集されたり、適切なCSVパーサーではなく素朴な文字列分割で解析されたりすると問題が発生します。TSV(Tab-Separated Values)はタブがデータ内にほとんど出現しないため、これらの引用の複雑さのほとんどを回避し、バイオインフォマティクス、データサイエンス、フィールド値に頻繁にカンマが含まれるコンテキストで人気のある選択肢です。
CSVとJSONは異なるデータ交換のニーズに対応しています。CSVは一貫したカラムを持つフラットな表形式データに最適で、スプレッドシートやデータツールで普遍的にサポートされ、大規模データセットでもコンパクトです。JSONはネストされたまたは階層的なデータにより適しており、APIの標準フォーマットです。データベースエクスポート、レポート作成、スプレッドシートワークフローには、CSVが実用的なデフォルトとして残っています。