用語比較
CSVとJSONの違い|表で持つか、入れ子で持つか(DS検定)
CSVとJSONは、どちらも分析結果やデータを外へ書き出すときに使うテキスト形式です。違いは、データの持ち方にあります。CSVは行と列の表として、JSONは名前と値のペアや並びを入れ子にして持ちます。
表ならCSV、入れ子ならJSONと区別するのが出発点です。CSVはIETFが2005年にRFC 4180としてまとめた形式で、JSONはRFC 8259が軽量でテキストベースの言語非依存なデータ交換形式と説明しています。
この記事の目次
この記事の根拠と出典
各セクションの見出しの下に、公式資料で確認した内容か編集部の整理かをラベルで示しています。 試験日・料金・申込条件・試験方式は変わることがあるため、申込前に公式サイトで確認してください。
CSVとJSONの要点
CSV
行と列の表を、カンマで区切ったテキストで表す形式。一行が一件の記録になる。
JSON
名前と値のペア(object)と、順序のある値の並び(array)を、入れ子にして表す形式。
違いを表で確認
| 比較軸 | CSV | JSON |
|---|---|---|
| データの持ち方 | 行と列の表。一行が一件の記録 | objectとarray。値の中にさらにobjectやarrayを入れられる |
| 項目名の付け方 | 先頭に任意で項目名の行(ヘッダー行)を置ける | 各値に名前が付く(名前の後ろにコロン) |
| 区切りの書き方 | フィールドをカンマで区切る。カンマや改行を含む値は二重引用符で囲む | 名前と値の間をコロン、ペアの間をカンマで区切る。文字列は二重引用符で囲む |
| 向いているデータ | 同じ項目が並ぶ、平らな表 | 階層のあるデータ。項目が件ごとに違う場合も書ける |
| 標準としての位置づけ | RFC 4180は情報提供の文書で、標準を規定するものではないと明記されている | RFC 8259が、データ交換形式として文法を定めている |
DS検定の学習に使う書籍(Amazon)
PRどこで迷っているかを切り分ける
集計結果を、表計算ソフトで開いて確認したい人
行と列の表をそのまま書き出すCSVが合います。一行が一件の記録になるので、表の形で読み込めます。
階層のあるデータを、他のシステムへ渡したい人
注文の中に複数の商品が入るように、値の中に値の並びを持つデータは、入れ子にできるJSONが合います。
値の中にカンマが入っていて、列がずれた人
CSVでは、カンマ・改行・二重引用符を含むフィールドは、全体を二重引用符で囲みます。囲み忘れると、一つの値が二つのフィールドに割れます。
具体例で使い分ける
例 1
支店ごとの売上を、一行一支店の一覧として書き出す場合
支店名、月、売上額の三つの項目が、全支店に同じようにある場面です。
- 項目がすべての行にそろう、平らな表です。
- 入れ子にする必要がなく、表計算ソフトでも開けるCSVが合います。
結論: 同じ項目が並ぶ平らな表なので、CSVを使います。
例 2
一つの注文に、複数の商品が入るデータを書き出す場合
注文ごとに、注文番号と、商品の一覧(商品名と数量の並び)を持つ場面です。
- 注文の中に、商品の並びが入ります。値の中に値の並びを持つ、階層のあるデータです。
- CSVの一行では、商品の数が注文ごとに違うことを自然に表せません。
結論: 階層のあるデータなので、入れ子にできるJSONを使います。
問題文から答えを選ぶ手順
- 1
データの形を確かめる
すべての記録に同じ項目が並ぶ平らな表か、値の中に値を持つ階層のあるデータかを見ます。
- 2
受け取る側の使い方を確かめる
表計算ソフトで開くのか、別のシステムへデータとして渡すのかを確かめます。
- 3
平らな表ならCSV
行と列の表として書き出します。カンマや改行を含む値は二重引用符で囲みます。
- 4
階層があるならJSON
objectとarrayを入れ子にして書き出します。文字列は二重引用符で囲みます。
試験での見分け方
- 1CSVは、表形式のデータをカンマで区切って表し、一行が一件の記録になる。
- 2JSONは、objectとarrayを入れ子にでき、階層のあるデータを表せる。
- 3どちらも、分析結果を指定の形式で書き出すときの選択肢で、データの形に合わせて選ぶ。
- 4データサイエンティスト協会のスキルチェックリストには、加工・分析処理の結果をCSV、XML、JSON、Excelなどの指定フォーマットに変換してエクスポートできることが、データ共有の★1つ星の項目として載っている。
誤答しやすい選択肢
CSVとJSONを、書き方が違うだけで同じものと考える
修正: CSVは行と列の表、JSONは入れ子にできる形式です。階層のあるデータはCSVの一行では自然に表せません。
カンマを含む値を、そのままCSVに書く
修正: カンマ・改行・二重引用符を含むフィールドは、全体を二重引用符で囲みます。囲まないと、フィールドの区切りと読み違えられます。
CSVを、公式の標準だと考える
修正: RFC 4180は情報提供の文書で、インターネット標準を規定するものではないと原文に明記されています。実務では、広く参照されている形式です。
確認問題
Q1行と列の表を、カンマで区切ったテキストで表す形式はどちらですか?
答え: CSV
CSVは、表形式のデータをカンマで区切ったフィールドとして表すプレーンテキスト形式です。
Q2objectとarrayを入れ子にして表せる形式はどちらですか?
答え: JSON
RFC 8259では、objectとarrayは値として入れ子にできます。
Q3Tokyo, Eastという、カンマを含む値を一つのCSVフィールドに保つには、どう書きますか?
答え: 全体を二重引用符で囲み、"Tokyo, East"と書く
RFC 4180では、カンマ・改行・二重引用符を含むフィールドは、二重引用符で囲みます。
到達チェック
- CSVとJSONのデータの持ち方の違いを言える
- カンマを含む値のCSVでの書き方を説明できる
- 平らな表のときにCSVを選べる
- 階層のあるデータのときにJSONを選べる
関連ページで確認する
同じ資格で次に知りたいこと
- UNIONとUNION ALLの違い|重複行を除くか、残すか(DS検定)
SQLのUNIONとUNION ALLの違いを、重複行の扱い、結合できる条件、使い分けの例で解説。DS検定のデータ加工で問われるUNION処理の確認問題つきです。
- DS検定とPython3エンジニア認定基礎試験の違い(出題範囲・問題数・試験時間・受験料・受験日)
DS検定(100問・100分、一般10,000円税抜)とPython3エンジニア認定基礎試験(40問・60分、7割正解、一般11,000円税込)の違いを、出題範囲、プログラミングの扱い、受験日の決まり方、受験料、先に受ける試験の決め方まで、公式情報に沿って比較します。
- WHERE句とHAVING句の違い|集計の前に絞るか、後に絞るか(DS検定)
SQLのWHERE句とHAVING句の違いを、絞り込むタイミング、集計関数を使えるか、書き方の例で解説。DS検定のSQLで問われるGROUP BYと集計の使い分けと確認問題つきです。
よくある質問
QCSVとJSONの一番大きな違いは何ですか?
データの持ち方です。CSVは行と列の表で、JSONはobjectとarrayを入れ子にして持ちます。
QCSVの値にカンマが入るときはどうしますか?
RFC 4180では、カンマ・改行・二重引用符を含むフィールドは、二重引用符で囲みます。
QCSVは公式の標準ですか?
RFC 4180は情報提供の文書で、インターネット標準を規定するものではないと原文に明記されています。実務では広く参照されています。
QDS検定にCSVとJSONは出ますか?
データサイエンティスト協会のスキルチェックリストに、加工・分析処理の結果をCSV、XML、JSON、Excelなどの指定フォーマットに変換してエクスポートできること(データ共有の★1つ星)が含まれます。
次に見る比較
- G検定・DS検定・統計検定2級で重なる用語10語の比較
同じ名前の用語の定義と収録章を、資格ごとに並べます。
- ベイズの定理と条件付き確率の違い(統計検定2級の式と計算例)
求める確率の向きの違いと、陽性になる確率の計算例を確かめます。
- 紛らわしい用語ペア早見表
混同しやすい用語の違いと判定の手掛かりを、資格別の一覧で確かめます。
執筆: AI資格ドリル編集部(運営者情報を見る)
