Pythonでちょっとしたツールが書けるようになってくると、次に立ちはだかるのが「外のサービスとデータをやり取りしたい」という壁です。天気情報を取ってきたい、SNSに自動投稿したい、ChatGPT APIを叩いてみたい——どれもJSONを避けては通れません。
JSONは一見すると「謎の波括弧の塊」に見えますが、仕組みを理解してしまえばPythonの辞書とほぼ同じ感覚で扱えます。今日この基本を押さえておけば、明日からはWeb APIの公式ドキュメントを読んでも「なるほど、こういう構造でデータが返ってくるのか」とスッと頭に入ってくるようになりますよ✨
JSONは JavaScript Object Notation の略で、データを表すための共通フォーマットです。名前にJavaScriptと付いていますが、今ではプログラミング言語を問わず広く使われています。
たとえばPythonで作ったシステムとJavaで作ったシステムが連携したいとき、それぞれの言語で「リスト」や「辞書」の表現方法は違います。日本語しか話せない人とフランス語しか話せない人が会話できないのと同じで、表記がバラバラだとデータのやり取りができません。そこで 共通言語=JSON を間に挟むことで、みんなが英語でコミュニケーションするようにデータを受け渡せるようになる、というわけです🌍
{} でくくり、"キー": 値 をカンマ区切りで並べるnull、真偽値は true / false(小文字)Pythonには標準で json モジュールが組み込まれています。import json と書くだけで、追加インストールなしですぐ使えるのが嬉しいポイントです。
json.dumps() にPythonの辞書を渡すと、JSON形式の文字列が返ってきます。Web APIにデータを送るときの定番処理ですね。
import json
data = {"item": "apple", "price": 120}
text = json.dumps(data)
print(text) # → {"item": "apple", "price": 120}
そのまま dumps すると、日本語が \u3055... のようなUnicodeエスケープに変換されてしまいます。これを防ぐには ensure_ascii=False を指定するだけ。
json.dumps(data, ensure_ascii=False)
たったこれだけで「さっぷー」のような全角文字もそのまま読める形で出力されます🎌
逆に、APIから受け取ったJSON文字列をPythonで扱いやすい辞書に変換するときは json.loads() を使います。
text = '{"id": 123, "is_student": true}'
obj = json.loads(text)
print(obj["id"]) # → 123
外から飛んできた文字列をいったんPythonオブジェクトに「翻訳」してしまえば、あとはいつもの辞書操作で自由自在です💪
\" とエスケープするr"..."(raw文字列)を使うと混乱しにくい.json 拡張子の設定ファイルを読み書きするときも、通常のテキストファイル操作と同じ流れでOK動画で概要をつかんだら、次は手を動かしながら知識を定着させるフェーズです。机に向かう時間が楽しくなる、独学者の強い味方を厳選しました。
JSON操作はあくまで「Pythonでできることのひとつ」。辞書・リスト・ファイル操作までしっかり地続きで学べる定番書を1冊持っておくと、つまずいた時に何度も戻ってこられる安心感があります。
JSONの真価が発揮されるのはWeb API連携。リクエスト送信からレスポンスのパースまで、実例ベースで学べる本があると「動くものを作る楽しさ」を体感できます。
取得したJSONデータを集計・可視化したい人には、pandasと組み合わせて学べる本がおすすめ。APIで集めたデータがそのまま分析資料に化けます✨
独学が続くかどうかは、実は「環境」で決まります。座りっぱなしで腰を痛めて挫折する前に、立ち座り切り替えできるデスクを導入すると集中力の持続時間がまるで変わってきます。
JSONを書く時は { " : , } と記号の連打になります。タイピングがストレスフリーになるキーボードに変えるだけで、コーディングのテンションが一段上がりますよ。
表形式のシンプルなデータならCSV、階層構造や型情報を保ちたいならJSONが向いています。Web APIの世界では圧倒的にJSONが標準です。
json.dumps と json.dump の違いは?dumps は文字列に変換、dump はファイルに直接書き出します。「s」が付くと「string」と覚えると忘れません。
\uXXXX になるのを防ぐには?json.dumps(data, ensure_ascii=False) と指定するだけでOKです。ファイル書き出し時も同じオプションが使えます。
.json ファイルはどう読み込む?open() でファイルを開き、json.load(f) に渡すだけ。テキストファイル操作の知識がそのまま流用できます。
JSONを扱えるようになったら、requests ライブラリを使ったWeb API連携に進むのがおすすめ。天気APIや翻訳APIなど、無料で試せるサービスから始めるとモチベーションが続きます。
JSONは「アプリと世界をつなぐ共通言語」。Pythonの json モジュールを使えば、辞書とJSON文字列の往復はたった2つの関数(dumps / loads)で完結します。今日学んだ基礎は、これから触るほとんどのWeb APIで必ず役に立つ土台です。
あとは手を動かして経験値を積むだけ。お気に入りの一冊と快適な作業環境を整えて、「APIから取ってきたデータで動くアプリ」を作る未来を一緒に手に入れましょう🚀