【Python初心者向け】JSONファイルの読み書き入門

Python

PythonでのJSONファイルの読み書きは、非常に基本的でありながら実用的なスキルです。設定ファイルの保存、Web APIとの通信、データの永続化など、さまざまな場面で活躍します。本記事では、Python初心者にもわかりやすいように、JSONとは何かから始まり、Pythonでの読み書きの方法を丁寧に解説していきます。

スポンサーリンク
スポンサーリンク

「JSON」とは

「JSON(JavaScript Object Notation)」とはテキストデータをベースとした広く普及している形式です。MIMEタイプは「application/json」で拡張子は「.json」です。

jsonはPythonの標準モジュールに含まれているため、ウェブスクレイピングをする上で頻繁に出くわす形式です。特にAPIの出力形式がjsonの場合が多いです。

JSONの特徴

  • キーと値のペアでデータを表現
  • ネスト(入れ子構造)が可能
  • 文字列、数値、配列、オブジェクト、真偽値、nullが使える

JSONの例:

{
  "name": "Taro",
  "age": 25,
  "languages": ["Japanese", "English"]
}

このような形式のデータを、Pythonで読み込んだり、書き込んだりできるようになります。

PythonでJSONを扱うには?

Pythonでは標準ライブラリのjsonモジュールを使って、簡単にJSONの読み書きができます。

import json

このモジュールには以下のような関数があります:

  • json.load(): ファイルからJSONを読み込む
  • json.loads(): 文字列からJSONを読み込む
  • json.dump(): JSONをファイルに書き込む
  • json.dumps(): JSONを文字列として書き出す

JSONの読み込み(ファイルから)

まずは、JSONファイルからデータを読み込む基本的な方法を見てみましょう。

例:data.json の中身

{
  "name": "Hanako",
  "age": 30,
  "skills": ["Python", "HTML"]
}

Pythonで読み込むコード

import json

with open('data.json', 'r', encoding='utf-8') as f:
    data = json.load(f)

print(data)
print(data['name'])

出力結果:

{'name': 'Hanako', 'age': 30, 'skills': ['Python', 'HTML']}
Hanako

このように、JSONはPythonの辞書型(dict)として読み込まれます。

JSONファイルへの書き込み

今度は、Pythonの辞書型データをJSONファイルとして保存する方法です。

Pythonコード例:

data = {
    "title": "Python入門",
    "level": "beginner",
    "published": True
}

with open('output.json', 'w', encoding='utf-8') as f:
    json.dump(data, f, ensure_ascii=False, indent=2)

出力される output.json の内容:

{
  "title": "Python入門",
  "level": "beginner",
  "published": true
}

ポイント:

  • ensure_ascii=False にすると、日本語が文字化けせず保存されます。
  • indent=2 を指定することで、読みやすい整形(インデント)が行われます。

JSON文字列の読み書き(ファイルではなくメモリ上)

ファイルを使わず、JSON文字列を直接扱う場合は loads()dumps() を使います。

読み込み:

json_str = '{"name": "Ken", "age": 40}'
data = json.loads(json_str)
print(data['age'])

書き出し:

data = {"language": "Python", "version": 3.11}
json_str = json.dumps(data, indent=2)
print(json_str)

JSONを使うときの注意点

1. Pythonのデータ型とJSONの対応表

Python型JSON型
dictobject
listarray
strstring
int/floatnumber
True/Falsetrue/false
Nonenull

2. JSONファイルの読み込みエラー

  • ファイルが存在しない → FileNotFoundError
  • JSONの形式が正しくない → json.JSONDecodeError

対処例:

try:
    with open('data.json', 'r', encoding='utf-8') as f:
        data = json.load(f)
except FileNotFoundError:
    print("ファイルが見つかりません")
except json.JSONDecodeError:
    print("JSON形式が正しくありません")

実用的な例:設定ファイルとしてのJSON

アプリケーションの設定をJSONに保存すると、外部ファイルとして柔軟に管理できます。

config.json

{
  "theme": "dark",
  "font_size": 14,
  "language": "ja"
}

Pythonで設定を読み込む

with open('config.json', 'r', encoding='utf-8') as f:
    config = json.load(f)

if config['theme'] == 'dark':
    print("ダークモードで表示")

まとめ

  • JSONはデータの保存や通信に非常に便利なフォーマット
  • Pythonではjsonモジュールを使うことで、簡単に読み書きできる
  • ファイルを使う方法と文字列を扱う方法の両方を理解しておくと便利
  • 実用例としては、設定ファイルやAPIレスポンスの保存などがある

これで、PythonにおけるJSONファイルの読み書きの基本をマスターできました!

タイトルとURLをコピーしました