カテゴリ: Python 更新日: 2026/06/01

PythonでスクレイピングしたデータをCSV・JSONに保存する方法を徹底解説!初心者向け完全ガイド

PythonでスクレイピングしたデータをCSVやJSONに保存する方法
PythonでスクレイピングしたデータをCSVやJSONに保存する方法

先生と生徒の会話形式で理解しよう

生徒

「Pythonでスクレイピングしたデータって、どうやって保存するんですか?」

先生

「いいところに気づきましたね。取得したデータはCSVやJSON形式で保存するのが一般的です。」

生徒

「CSVとかJSONって何ですか?難しそうです…」

先生

「大丈夫です。とてもシンプルな仕組みなので、順番にわかりやすく説明していきますね!」

1. スクレイピングデータを保存する理由とは?

1. スクレイピングデータを保存する理由とは?
1. スクレイピングデータを保存する理由とは?

PythonでWebスクレイピングを行うと、Webサイトからさまざまな情報を取得できます。しかし、そのまま画面に表示するだけでは後から使うことができません。

そこで重要になるのが「データ保存」です。CSVやJSON形式で保存することで、Excelで開いたり、別のプログラムで再利用したりできます。

たとえば、ネットショップの価格を集めて比較したり、ニュース記事をまとめて分析する場合にも役立ちます。

2. CSVとは?初心者向けにやさしく解説

2. CSVとは?初心者向けにやさしく解説
2. CSVとは?初心者向けにやさしく解説

CSVとは「カンマで区切られたデータ形式」のことです。表のようなデータをシンプルに保存できます。

Excelと非常に相性が良く、初心者にも扱いやすいのが特徴です。

例えば次のようなデータになります。


名前,年齢
田中,20
佐藤,25

カンマで区切るだけなので、とてもシンプルな仕組みです。

3. PythonでCSVファイルに保存する方法

3. PythonでCSVファイルに保存する方法
3. PythonでCSVファイルに保存する方法

Pythonでは「csvモジュール」を使うことで、簡単にCSVファイルを作成できます。モジュールとは、便利な機能がまとめられた部品のようなものです。


import csv

data = [
    ["名前", "年齢"],
    ["田中", 20],
    ["佐藤", 25]
]

with open("data.csv", "w", newline="", encoding="utf-8") as file:
    writer = csv.writer(file)
    writer.writerows(data)

このコードを実行すると、同じフォルダに「data.csv」というファイルが作成されます。

「with open」はファイルを開く命令で、「w」は書き込みモードを意味します。

4. JSONとは?データ保存でよく使われる形式

4. JSONとは?データ保存でよく使われる形式
4. JSONとは?データ保存でよく使われる形式

JSONは「データを構造的に保存できる形式」です。少し難しそうに見えますが、辞書のような形で書けるのが特徴です。

例えば以下のように書きます。


{
  "名前": "田中",
  "年齢": 20
}

キーと値のセットで管理できるため、複雑なデータでも扱いやすいです。

5. PythonでJSONファイルに保存する方法

5. PythonでJSONファイルに保存する方法
5. PythonでJSONファイルに保存する方法

JSON形式で保存するには「jsonモジュール」を使います。CSVと同じく簡単に扱えます。


import json

data = {
    "名前": "田中",
    "年齢": 20
}

with open("data.json", "w", encoding="utf-8") as file:
    json.dump(data, file, ensure_ascii=False, indent=4)

「ensure_ascii=False」は日本語をそのまま保存するための設定です。「indent=4」は見やすく整形するための設定です。

6. スクレイピングデータを保存する実践例

6. スクレイピングデータを保存する実践例
6. スクレイピングデータを保存する実践例

ここでは、スクレイピングで取得したデータをCSVとJSONの両方で保存する例を紹介します。


import csv
import json

data = [
    {"名前": "田中", "年齢": 20},
    {"名前": "佐藤", "年齢": 25}
]

# CSV保存
with open("data.csv", "w", newline="", encoding="utf-8") as file:
    writer = csv.writer(file)
    writer.writerow(["名前", "年齢"])
    for item in data:
        writer.writerow([item["名前"], item["年齢"]])

# JSON保存
with open("data.json", "w", encoding="utf-8") as file:
    json.dump(data, file, ensure_ascii=False, indent=4)

このようにすれば、スクレイピングした情報を自由に保存できます。

7. よくあるエラーと対処法

7. よくあるエラーと対処法
7. よくあるエラーと対処法

初心者がよくつまずくポイントとして、文字コードの問題があります。日本語が文字化けする場合は「encoding="utf-8"」を指定しましょう。

また、CSV保存時に空行が入る場合は「newline=""」を忘れないようにすることが重要です。

8. CSVとJSONの使い分けポイント

8. CSVとJSONの使い分けポイント
8. CSVとJSONの使い分けポイント

CSVはシンプルな表形式のデータに向いています。一方でJSONは複雑な構造のデータに適しています。

例えば、商品名と価格だけならCSV、商品情報にレビューやカテゴリがある場合はJSONが向いています。

用途に応じて使い分けることが、Pythonスクレイピングを効率的に進めるコツです。

まとめ

まとめ
まとめ

スクレイピングデータ保存の重要ポイントを総復習

PythonでWebスクレイピングを行う際に取得したデータをCSVやJSON形式で保存することは、データ活用の第一歩です。 スクレイピングしたデータをそのまま画面表示するだけでは、後から分析や加工ができませんが、CSVファイルやJSONファイルとして保存しておくことで、 Excelでの閲覧やデータ分析ツールでの活用、さらには別のPythonプログラムとの連携など幅広い用途に対応できるようになります。

特にCSV形式は、表形式データの保存に適しており、初心者でも扱いやすいのが特徴です。 一方でJSON形式は、キーと値の構造を持つため、ネストされたデータや複雑な情報管理に向いています。 このように、Pythonスクレイピングでは用途に応じてCSVとJSONを使い分けることが非常に重要です。

初心者が覚えておくべき基本知識

PythonでCSVファイルを扱う場合はcsvモジュールを使用し、jsonファイルを扱う場合はjsonモジュールを利用します。 また、ファイル操作ではwith open構文を使うことで、安全かつ簡潔にファイルの読み書きが可能になります。 書き込みモードには「w」を指定し、日本語を扱う場合はencoding="utf-8"を指定することが重要です。

さらに、CSV保存時のnewline指定や、JSON保存時のensure_asciiやindent設定など、 実務で役立つ細かいポイントを理解しておくことで、より実践的なスキルが身につきます。

実務で役立つデータ保存テクニック

実際の開発現場では、スクレイピングしたデータをそのまま保存するだけでなく、 データを加工してから保存するケースが多くあります。 例えば、不要な空白の削除や数値変換、重複データの除去などを行うことで、 より品質の高いデータを作成することができます。

また、CSVとJSONの両方で保存することで、用途ごとに使い分けることも可能になります。 例えば、分析用にはCSV、システム連携用にはJSONというように、 データの活用範囲を広げることができます。

サンプルプログラムで理解を深める

以下は、スクレイピングデータをCSVとJSONの両方に保存する実践的なサンプルコードです。 初心者の方は、このコードを実際に動かしてみることで理解が深まります。


import csv
import json

# スクレイピングで取得したデータを想定
data = [
    {"名前": "山田", "年齢": 30},
    {"名前": "鈴木", "年齢": 28},
    {"名前": "高橋", "年齢": 35}
]

# CSVに保存
with open("sample.csv", "w", newline="", encoding="utf-8") as file:
    writer = csv.writer(file)
    writer.writerow(["名前", "年齢"])
    for item in data:
        writer.writerow([item["名前"], item["年齢"]])

# JSONに保存
with open("sample.json", "w", encoding="utf-8") as file:
    json.dump(data, file, ensure_ascii=False, indent=4)

このプログラムを実行することで、Pythonでのファイル保存処理の流れを実践的に理解することができます。 スクレイピングと組み合わせることで、より高度なデータ収集と保存が可能になります。

よくあるミスと対策まとめ

初心者がつまずきやすいポイントとして、文字化けや空行問題があります。 これらはencoding指定やnewline設定で解決できます。 また、JSON保存時に日本語がエスケープされる問題もensure_ascii設定で回避できます。

こうした細かいポイントをしっかり理解することで、 Pythonスクレイピングの品質を大きく向上させることができます。

先生と生徒の振り返り会話

生徒

スクレイピングしたデータってそのまま使うだけじゃなくて保存するのが大事なんですね

先生

その通りですデータを保存することで後から分析したり再利用したりできるようになります

生徒

CSVとJSONの違いも少しわかってきましたシンプルならCSV複雑ならJSONですね

先生

よく理解できています用途に応じて使い分けることがPythonスクレイピングの重要なポイントです

生徒

あと文字化けとか空行の問題も気をつけないといけないんですね

先生

そうですencodingやnewlineの指定は実務でもよく使うので必ず覚えておきましょう

生徒

これでスクレイピングから保存まで一通りできそうです

先生

素晴らしいです次はデータ分析や自動化にも挑戦してみましょう

コメント
コメント投稿は、ログインしてください

まだ口コミはありません。

関連記事:
Python のWebスクレイピングの記事一覧へ
新着記事
New1
Python
Pythonの変数とは?定義方法とデータ型を初心者向けに解説
New2
PHP
PHP の型変換を完全ガイド!初心者でもわかる明示的変換・自動変換
New3
PHP
PHPのCSVファイルの読み書きと文字列処理を基礎から解説!初心者向けガイド
New4
PHP
PHPのメモリ管理と変数の破棄方法をやさしく解説!初心者でもわかるunsetの使い方
人気記事
No.1
Java&Spring記事人気No1
Python
PythonでAPIリクエストを送信する方法を完全解説!requestsライブラリで簡単API通信
No.2
Java&Spring記事人気No2
Python
Pythonで経過時間を計測する方法を完全解説!初心者でもわかる time.perf_counter() と time.sleep()
No.3
Java&Spring記事人気No3
Python
Pythonのコンストラクタ(__init__)の使い方!初心者でもわかるオブジェクトの初期化
No.4
Java&Spring記事人気No4
PHP
PHPの配列をソートする方法!sort, rsort, asort, ksortの使い方を丁寧に解説します!
No.5
Java&Spring記事人気No5
PHP
PHP のフォームデータの受け取り($_POST, $_GET)を完全解説!初心者向けガイド
No.6
Java&Spring記事人気No6
Python
Pythonのタプルの要素を変更できない理由とその回避策を初心者向けに解説
No.7
Java&Spring記事人気No7
ChatGPT
ChatGPTでPythonコードを作成する方法!プロンプトの書き方と質問例を解説
No.8
Java&Spring記事人気No8
Python
Pythonのrequestsライブラリ完全入門!HTTPリクエストの送り方を初心者向けにやさしく解説