エンジニアライフスタイルブログを運営しているミウラ(@miumiu06171)です。
普段はフリーランスでシステムエンジニアをしております。
今回は、Python入門時におさえておきたいJSON形式ファイルの使い方を紹介していきます。
なお、本記事内のPythonソースコードは、Visual Studio Code (VS Code)で動作を確認しています。
同様に動作確認したい方はこちらの記事も参照し、まずはVS Codeの環境構築をおこなうとよいでしょう。
JSONとはデータフォーマットの一つ
JSON(JavaScript Object Notation)とは、データフォーマット(データ形式)の一つで、JavaScriptのオブジェクト記法を用いたデータ交換フォーマットになります。
JavaScriptで使えることはもちろんのこと、Java、C++、Python、PHPなどさまざまなプログラミング言語でJSONがサポートされているので、言語間のデータの受け渡しが非常に便利なデータフォーマットと言えます。
JSON形式のデータフォーマットの読み方や書き方については、こちらの記事を参照してください。
JSONが使われる場面
JSONがJavaScriptで使われてきたこともあり、特にWebサービス周りのAjaxやREST APIによく使われます。
JSONの基本的な使い方
ここでは、JSONの基本的な使い方について紹介していきます。
Pythonプログラム内でJSON形式データを扱う場合と、Pythonプログラム外にあるJSON形式ファイルを扱う場合でメソッドが違うので、下図をイメージしてJSONパッケージの使い方を確認していきましょう。
JSONのインポート
まずは、PythonでJSONを扱うためにJSONパッケージを下記のようにインポートします。
1 |
import json |
Pythonの辞書型データをJSON形式データとして書き込み(json.dumps)
次にPythonの辞書型変数の内容を、JSON形式データとして書き込むには、下記Pythonコードのようにjson.dumpsメソッドを使用します。
1 2 3 4 5 6 7 8 9 10 11 12 13 |
import json di = { "students": [ {"id": 1, "name": "Miura"}, {"id": 2, "name": "Tanaka"}, {"id": 3, "name": "Sato"} ] } print(json.dumps(di)) |
Pythonの辞書型データをJSON形式ファイルに書き込み(json.dump)
次にPythonの辞書型変数の内容を、JSON形式ファイルとして書き込むには、下記Pythonコードのようにjson.dumpメソッドを使用します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
import json di = { "students": [ {"id": 1, "name": "Miura"}, {"id": 2, "name": "Tanaka"}, {"id": 3, "name": "Sato"} ] } with open('test.json', 'w') as f: json.dump(di, f) |
Pythonプログラム外にあるJSON形式ファイルに書き出すときは、json.dumpsメソッドではなく、json.dumpメソッドであることに注意してください。
そして、「test.json」ファイルが出力されているか確認してください。
JSON形式データをPythonの辞書型データとして読み込み(json.loads)
次にPythonプログラム内で扱っているJSON形式データをPythonの辞書型として読み込むには、下記Pythonコードのようにjson.loadsメソッドを使用します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
import json di = { "students": [ {"id": 1, "name": "Miura"}, {"id": 2, "name": "Tanaka"}, {"id": 3, "name": "Sato"} ] } a = json.dumps(di) print(json.loads(a)) |
ここでは、json.dumpsメソッドで一度書き込んだJSON形式データを、json.loadsメソッドで再度読み出して、print文で表示しています。
JSON形式ファイルをPythonの辞書型データとして読み込み(json.load)
次にPythonプログラム外にあるJSON形式ファイルの内容をPythonの辞書型として読み込むには、下記Pythonコードのようにjson.loadメソッドを使用します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
import json di = { "students": [ {"id": 1, "name": "Miura"}, {"id": 2, "name": "Tanaka"}, {"id": 3, "name": "Sato"} ] } with open('test.json', 'r') as f: print(json.load(f)) |
Pythonプログラム外にあるJSON形式ファイルに読み込むときは、json.loadsメソッドではなく、json.loadメソッドであることに注意してください。
まとめ
いかがでしたでしょうか。
PythonのJSONパッケージの基本的な使い方を紹介してきました。
本記事内でもふれてきましたが、JSONはWebサービスでは欠かせないため、この機会に扱い方をおぼえていただければ幸いです。