Shikata Ga Nai

Private? There is no such things.

第14回:ファイル形式いろいろ:CSV、JSON、HTMLの違いとは?

Hello there, ('ω')ノ

データ分析を進める中で、データのやり取りや保存にはさまざまなファイル形式(フォーマット)が使われます。 その中でも特によく登場するのが、CSV・JSON・HTMLという3つの形式です。

それぞれ見た目も構造も違いますが、「何に使われるのか?」「どう扱えばいいのか?」を理解しておくと、 データの受け渡しや加工の効率が格段にアップします。


✅ CSV(カンマ区切り形式)

📄 「表形式のデータ」を保存する最もシンプルな形式

CSVとは Comma Separated Values の略で、カンマ「,」で項目を区切って並べる形式です。 ExcelやGoogleスプレッドシートで扱う表とほぼ同じ構造を持ちます。

🔍 例:

名前,年齢,部署
山田太郎,30,営業部
佐藤花子,25,人事部

✅ 特徴:

項目 内容
扱いやすさ 非常にシンプルで読み書きしやすい
対応ツール Excel、スプレッドシート、Pythonなどほぼ全ツール対応
用途 データベース出力、レポート、データのインポート・エクスポート
注意点 カンマや改行が含まれると壊れる可能性がある(ダブルクオートで囲む対策が必要)

「表形式のデータ=まずはCSV」というのが基本です。


✅ JSON(JavaScript Object Notation)

🔄 「構造化されたデータ」を柔軟に表現できる形式

JSONは、キーと値のペア("キー": 値)を使って、複雑なデータ構造を保存できる形式です。 WebアプリやAPIのデータ交換、NoSQLデータベースなどで広く使われています。

🔍 例:

{
  "名前": "山田太郎",
  "年齢": 30,
  "部署": "営業部"
}

リスト形式にもできます:

[
  { "名前": "山田太郎", "年齢": 30 },
  { "名前": "佐藤花子", "年齢": 25 }
]

✅ 特徴:

項目 内容
表現力 ネスト構造(入れ子)も可能で柔軟
読みやすさ 人間にも読みやすく、機械でも処理しやすい
主な用途 Web API、NoSQL、アプリデータ保存など
注意点 Excelでは直接扱いにくい(加工や変換が必要)

構造が複雑でも扱えるため、開発現場では非常に重宝されます。


✅ HTML(HyperText Markup Language)

🌐 Webページを作るための文書形式

HTMLは、Webページを作るための言語ですが、Web上のデータを取得する(スクレイピング)ときによく出てきます。

🔍 例:

<table>
  <tr><th>名前</th><th>年齢</th></tr>
  <tr><td>山田太郎</td><td>30</td></tr>
</table>

見た目はWebページ上にきれいに表が表示されますが、中身はタグ(<table>, <tr>, <td> など)で囲まれています。

✅ 特徴:

項目 内容
構造 タグで囲まれたテキスト
主な用途 Webページ表示、ブラウザ上の情報提供
分析用途 Webからのデータ抽出(スクレイピング)
注意点 データ抽出にはHTML構造の理解が必要(ツールやコードが必要)

データ分析に直接使うというより、“Webからデータを取る入り口”として登場します。


🔁 3形式の比較表

項目 CSV JSON HTML
構造 表形式(1行1レコード) キーと値の構造化データ タグ付きの文書形式
読みやすさ ◎(人にも機械にも) ○(慣れれば読みやすい) △(タグが多く視認性低い)
主な用途 データ移行、分析、インポート Web API、設定データ Webページ、スクレイピング
加工のしやすさ ○(ツールが必要) △(解析が必要)
対応ソフト Excel、R、Pythonなど JavaScript、Pythonなど ブラウザ、HTMLパーサー

💡 実務での使い分け方

シーン 適した形式
Excelで編集したい CSV
WebアプリやAPIと連携したい JSON
Webサイトから情報を取りたい HTML(+スクレイピング)
構造化された複雑な情報を保持したい JSON
シンプルなデータを共有・保存したい CSV

✨ まとめ:データの形を理解すれば、変換も怖くない!

ファイル形式 一言で言うと
CSV 「表」に最適。汎用性No.1
JSON 「構造化」に最適。開発者向け
HTML 「Web」に最適。スクレイピングの対象

データの出どころや扱い方によって、どの形式がベストかを見極めることが大切です。 ツールによっては、CSV⇔JSONなどの変換も簡単に行えるので、必要に応じて柔軟に対応しましょう。

Best regards, (^^ゞ