AI資格ドリル
資格を選ぶ

用語比較

CSVとJSONの違い|表で持つか、入れ子で持つか(DS検定)

CSVとJSONは、どちらも分析結果やデータを外へ書き出すときに使うテキスト形式です。違いは、データの持ち方にあります。CSVは行と列の表として、JSONは名前と値のペアや並びを入れ子にして持ちます。

表ならCSV、入れ子ならJSONと区別するのが出発点です。CSVはIETFが2005年にRFC 4180としてまとめた形式で、JSONはRFC 8259が軽量でテキストベースの言語非依存なデータ交換形式と説明しています。

この記事の根拠と出典

各セクションの見出しの下に、公式資料で確認した内容か編集部の整理かをラベルで示しています。 試験日・料金・申込条件・試験方式は変わることがあるため、申込前に公式サイトで確認してください。

CSVとJSONの要点

CSV

行と列の表を、カンマで区切ったテキストで表す形式。一行が一件の記録になる。

JSON

名前と値のペア(object)と、順序のある値の並び(array)を、入れ子にして表す形式。

違いを表で確認

比較軸CSVJSON
データの持ち方行と列の表。一行が一件の記録objectとarray。値の中にさらにobjectやarrayを入れられる
項目名の付け方先頭に任意で項目名の行(ヘッダー行)を置ける各値に名前が付く(名前の後ろにコロン)
区切りの書き方フィールドをカンマで区切る。カンマや改行を含む値は二重引用符で囲む名前と値の間をコロン、ペアの間をカンマで区切る。文字列は二重引用符で囲む
向いているデータ同じ項目が並ぶ、平らな表階層のあるデータ。項目が件ごとに違う場合も書ける
標準としての位置づけRFC 4180は情報提供の文書で、標準を規定するものではないと明記されているRFC 8259が、データ交換形式として文法を定めている

どこで迷っているかを切り分ける

01

集計結果を、表計算ソフトで開いて確認したい人

行と列の表をそのまま書き出すCSVが合います。一行が一件の記録になるので、表の形で読み込めます。

02

階層のあるデータを、他のシステムへ渡したい人

注文の中に複数の商品が入るように、値の中に値の並びを持つデータは、入れ子にできるJSONが合います。

03

値の中にカンマが入っていて、列がずれた人

CSVでは、カンマ・改行・二重引用符を含むフィールドは、全体を二重引用符で囲みます。囲み忘れると、一つの値が二つのフィールドに割れます。

具体例で使い分ける

例 1

支店ごとの売上を、一行一支店の一覧として書き出す場合

支店名、月、売上額の三つの項目が、全支店に同じようにある場面です。

  • 項目がすべての行にそろう、平らな表です。
  • 入れ子にする必要がなく、表計算ソフトでも開けるCSVが合います。

結論: 同じ項目が並ぶ平らな表なので、CSVを使います。

例 2

一つの注文に、複数の商品が入るデータを書き出す場合

注文ごとに、注文番号と、商品の一覧(商品名と数量の並び)を持つ場面です。

  • 注文の中に、商品の並びが入ります。値の中に値の並びを持つ、階層のあるデータです。
  • CSVの一行では、商品の数が注文ごとに違うことを自然に表せません。

結論: 階層のあるデータなので、入れ子にできるJSONを使います。

問題文から答えを選ぶ手順

  1. 1

    データの形を確かめる

    すべての記録に同じ項目が並ぶ平らな表か、値の中に値を持つ階層のあるデータかを見ます。

  2. 2

    受け取る側の使い方を確かめる

    表計算ソフトで開くのか、別のシステムへデータとして渡すのかを確かめます。

  3. 3

    平らな表ならCSV

    行と列の表として書き出します。カンマや改行を含む値は二重引用符で囲みます。

  4. 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を選べる

同じ資格で次に知りたいこと

よくある質問

QCSVとJSONの一番大きな違いは何ですか?

A

データの持ち方です。CSVは行と列の表で、JSONはobjectとarrayを入れ子にして持ちます。

QCSVの値にカンマが入るときはどうしますか?

A

RFC 4180では、カンマ・改行・二重引用符を含むフィールドは、二重引用符で囲みます。

QCSVは公式の標準ですか?

A

RFC 4180は情報提供の文書で、インターネット標準を規定するものではないと原文に明記されています。実務では広く参照されています。

QDS検定にCSVとJSONは出ますか?

A

データサイエンティスト協会のスキルチェックリストに、加工・分析処理の結果をCSV、XML、JSON、Excelなどの指定フォーマットに変換してエクスポートできること(データ共有の★1つ星)が含まれます。

次に見る比較

執筆: AI資格ドリル編集部(運営者情報を見る)