【現場で使える】PythonでJSONを読み書き・活用する完全ガイド

※本サイトにはプロモーション・広告が含まれています。

(最終更新月: 2025年07月17日)

✓当記事はこんな方におすすめです

「PythonでJSONデータを扱いたいが、基本をしっかり押さえたい」

「Python×JSONの具体的な活用例を知りたい」

「入門者でも理解できるようなサンプルコードや注意点まで知りたい」

✓当記事で理解できること

  • PythonとJSONの基本的な関係性、考え方
  • 実践的なJSONデータの読み書き方法と活用テクニック
  • 現場で役立つエラー対策&よくある落とし穴の回避方法

本記事では、PythonでのJSON操作の基本から、陥りがちなミス・応用例までを、初学者の方にも分かるサンプルコード付きで優しく丁寧に解説します。

初めての方も、現場でよく使う方も、最後まで読めばデータのやりとりや保存がグッと快適になるはずです。

それでは、一緒に見ていきましょう。

運営者プロフィール

運営者プロフィールアイコン

現在はIT企業のプロダクトマネージャーとして、個人向け/社内向けシステムなど、複数のシステム開発・運営に携わっています。

Webサイト構築やECサイトの開発経験に加えて、PythonなどのプログラミングやSalesforceなどのクラウドアプリケーションに関する幅広い知識・経験を活かして「プログラミング初心者がスムーズに学べるサイト」を目指しています。

Githubでは、趣味で作成したアプリなどを公開しています。

https://github.com/Yulikepython/

✔人に見せても恥ずかしくないコードを書こう

「リーダブルコード」は、わかりやすく良いコードの定義を教えてくれる本です。

  • 見るからにきれいなコードの書き方
  • コードの分割方法
  • 変数や関数の命名規則

エンジニアのスタンダートとすべき基準を一から解説しています。

何回も読むのに値する本なので、ぜひ手にとって読んでみてください。

PythonとJSONの基礎知識

ここでは、PythonとJSONがそれぞれどんなもので、なぜ現代のシステム開発で重要なのかを紹介します。

Python・JSONの特徴が分かると、実務で「なぜこの2つをセットで学ぶべきなのか」がクリアになります。

  • Pythonとは?
  • JSONとは?
  • Python×JSONが重宝される理由

Pythonとは?

Pythonは、シンプルさ・読みやすさ・豊富なライブラリが特長のプログラミング言語です。

例えば、たった1行でWebサイトからデータを取得したり、数行でAIモデルを作ったりできます。

IT未経験者や文系出身者でも学びやすいため、「初めての言語」としてもおすすめされています。

参考: Pythonのインストール方法をOS別にまとめました!

JSONとは?

JSON(JavaScript Object Notation)は、”人間にもパソコンにも優しいデータ保存・通信フォーマット”です。

例えば、Web APIのやりとりや、設定ファイルの保存によく使われています。

次のようなシンプルな書式が特徴です:

{
  "name": "山田太郎",
  "age": 24,
  "skills": ["Python", "HTML", "SQL"]
}

カンマ区切りで情報が見やすく、Excelが使える人ならすぐ理解できるでしょう。

Python×JSONが重宝される理由

PythonとJSONは、Web・データ分析・自動化・API連携など現場の多くで「王道の組み合わせ」とされています。

なぜかと言えば、Webシステムとバックエンドのやりとり(APIやデータ保存)は、ほぼ全てJSON形式で行われるからです。

例えばDjangoなどの人気Webフレームワークも、外部サービスとの連携はJSONが基本です。

日常の業務だけでなく、エンジニア採用試験でもJSON操作は頻出ジャンルとなっています。

PythonでJSONを読み書きする基本

このセクションでは、「Pythonでの実際のJSON操作(読み込み・書き出し)」にチャレンジします。

なぜこの内容が大切かと言うと、ファイル保存や他システム連携において「失敗しないJSON処理」はIT現場の基本動作だからです。

  • jsonモジュールの基本(読み込み/書き出し)
  • 文字列としての変換(エンコード・デコード)
  • 実践例:APIレスポンスの処理

jsonモジュールの基本(読み込み/書き出し)

Python標準の「json」モジュールで、超シンプルにJSONファイルの読み書きができます。

理由は、追加インストール不要で、どの環境(Windows/Mac/クラウド上)でも動くからです。

サンプルとして、ユーザー情報を含むJSONファイルを書き出したり、逆にPythonで読み込んだりしてみましょう。

import json

# 辞書データをファイルに保存
user = {"name": "Sato", "score": 88}
with open("user.json", "w", encoding="utf-8") as f:
    json.dump(user, f, ensure_ascii=False, indent=2)

# ファイルから読み込み
with open("user.json", "r", encoding="utf-8") as f:
    loaded = json.load(f)
print(loaded)  # {'name': 'Sato', 'score': 88}

このように、「辞書型」⇔「JSONファイル」の変換が一瞬で可能です。

文字列としての変換(エンコード・デコード)

API通信の際などは、「ファイル」ではなく「文字列として」JSONをやりとりすることが多いです。

理由は、クラウド上のサーバーやブラウザといった”離れた場所”とリアルタイムでデータ交換をする場合、ファイル保存より「文字列送信」のほうが早くて確実だからです。

Pythonでは、json.dumps()(エンコード/辞書→JSON文字列)、json.loads()(デコード/JSON文字列→辞書)で簡単変換できます。

import json

# 辞書型をJSON文字列に変換
person = {"name": "Suzuki", "age": 21}
text = json.dumps(person)
print(text)  # {"name": "Suzuki", "age": 21}

# JSON文字列を辞書型に変換
data = json.loads(text)
print(data)  # {'name': 'Suzuki', 'age': 21}

このやり方はAPI開発にも必須なので、ぜひ使いこなしてください。

実践例:APIレスポンスの処理

たとえばPythonで外部APIを利用するときは、受け取るデータはほぼJSON形式です。

この理由は、GoogleやTwitterなど世界のIT大手も「データ交換にはお互いJSONでやりとり」としているからです。

PythonでAPIレスポンスを扱う実例:

import requests
import json

# 例: ダミーAPIにアクセス
rsp = requests.get("https://jsonplaceholder.typicode.com/users/1")
data = rsp.json()
print(data["name"])  # APIから取得したユーザー名が表示される

このように、API×Pythonで仕事をするなら、JSON処理は必須スキルとなります。

ミスしないための応用テクニックと注意点

ここでは、「Python×JSONでよくあるミス」「より現場で通用するための応用ワザ」を紹介します。

理由は、初学者がつまずきやすいポイントを事前に知っておくことで、実践でイチからやり直すリスクが減るからです。

  • エラー対策:JSONDecodeErrorの回避
  • Python独自仕様による落とし穴
  • カスタムエンコーダ/デコーダの活用

エラー対策:JSONDecodeErrorの回避

最も多い失敗は “Syntaxエラー” ~つまりフォーマットミスによるエラーです。

理由は、カンマのつけ忘れや全角・半角の混在、二重引用符と一重引用符の混乱など、”慣れていないうちは些細なミスが多発”するからです。

例えば:

import json

try:
    json.loads('{name: "Taro", age: 20}')
except json.JSONDecodeError as e:
    print(f"エラー内容: {e}")

これだと”name”に””がついていないのでエラーです。

JSON文字列は、必ずダブルクオート(””)で記述しましょう。これだけでもSyntaxエラーを大半回避できます。

Python独自仕様による落とし穴

JSON標準とPythonの細かな違い(例:float値のNaN、inf、不正なキー名)が落とし穴になります。

理由は、Pythonではfloat(“nan”)やfloat(“inf”)を辞書に含めても書けてしまう一方で、JSON標準仕様(RFC8259)ではそれらはエラーとなるためです。

たとえば:

import json
json.dumps({"val": float("inf")})  # → ValueErrorが発生

対応策としては「書き込み前に必ず値をチェック」すること。

また、辞書のキー重複({“a”: 1, “a”: 2})なども、Pythonでは上書きされるため注意しましょう。

カスタムエンコーダ/デコーダの活用

自作のクラス(例:User, Productなど)は、そのままjson.dumps()では保存できません。

Python標準のJSONEncoderを継承すれば、自作クラスも”ほどよく”JSON化可能です。

以下はそのコード例:

import json
class User:
    def __init__(self, name, age):
        self.name = name
        self.age = age

class UserEncoder(json.JSONEncoder):
    def default(self, obj):
        if isinstance(obj, User):
            return obj.__dict__
        return super().default(obj)

u = User("Taro", 24)
print(json.dumps(u, cls=UserEncoder))  # {"name": "Taro", "age": 24}

こうしたテクニックは規模が大きい工程でとても有効です。

実務で役立つJSON活用例&現場Tips

このセクションでは、教科書的な使い方にとどまらず「Python×JSON」の現場で欠かせない実践スキルを紹介します。

なぜなら、多くの現場プロジェクトが「複数システムの橋渡し」や「複雑なデータの変換」を日々行っているからです。

  • ファイルの整形&検証コマンド活用
  • 順序付き辞書やデータの工夫
  • 自動化や業務効率化との掛け合わせ

ファイルの整形&検証コマンド活用

json.toolを使うと、jsonファイルの整形やエラー検出が一瞬でできます。

この機能は、外部から受け取ったjsonデータの「改行やインデントがおかしい」「整形されていない」などで見辛いときに便利です。

次のコマンドでサクッと整形しましょう:

python -m json.tool data.json

もしJSONとして不正な場合、エラーの行番号なども表示してくれるため、「原因究明」もスムーズに行えます。

順序付き辞書やデータの工夫

辞書のキー順を厳密に保ちたいときは「collections.OrderedDict」で読み込みましょう。

理由は、旧バージョンのPythonや外部連携では「順序付き辞書」が求められることがあるからです。

たとえば:

import json
from collections import OrderedDict
s = '{"a": 1, "b": 2, "c": 3}'
res = json.loads(s, object_pairs_hook=OrderedDict)
print(res)  # OrderedDict([('a', 1), ('b', 2), ('c', 3)])

順番の変化でトラブルになりやすい業務要件には、この工夫が必須です。

自動化や業務効率化との掛け合わせ

Python×JSONは、日々の業務自動化や他ツール連携の“潤滑油”として使われます。

たとえば「データベースから抽出→JSON形式でAPIに連携」「JSONで設定ファイルを書き出し→定期的にバックアップする自動スクリプト」などが挙げられます。

自動化の実例や業務での活用アイデアは、PythonでAPIを使いこなす|リクエストからAPI構築までや、PythonでMySQLデータベースを操作する|コード付も参考にするとさらに理解が深まります。

まとめ

この記事では、PythonにおけるJSON操作の「基礎知識→実務的な注意点→現場向けTIPS」までを分かりやすくまとめました。

要点をおさらいすると、

  • jsonモジュールでの基本的なファイル・文字列変換は現場で必須となるスキル。
  • エラー対策や仕様の落とし穴を事前に知ることで、失敗を減らして生産性を上げられる。
  • ファイル整形・順序保証・自動化などの応用ワザを覚えれば、さらに一歩進んだ実務力が身につく。

ぜひ日々の開発業務や学習に、本記事のノウハウを生かしてみてください。Python&JSONの知識はエンジニア転職や新しいプロジェクト推進でも大きな武器になります。

本格的な学習・転職を検討中の方には、受講者満足度90%以上のプログラミングスクール【DMM WEBCAMP】もおすすめです。未経験からPythonエンジニアになりたい方は、ぜひチェックしてみてください。

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