JavaScriptなどでよく使われるイメージが強いJSONですが、簡単に扱うことができるため様々な場面で欠かせないフォーマットの一つです。今回は、PythonでJSONを扱うための方法をまとめてみました!
PythonでJSONってどやって扱うの?
PythonではJSON(JavaScript Object Notation)を標準ライブラリjson
をインポートすることで扱える
# -*- coding: utf-8 -*-
import json
扱う方法は基本的に2種類だけ
「ファイルの入出力」か「オブジェクトの変換」
- ファイルの入出力(ファイル ⇔ Pythonオブジェクト)
- json.load
- json.dump
- オブジェクトの変換(文字列 ⇔ Pythonオブジェクト)
- json.loads
- json.dumps
ファイルへの入出力(json.load/dump)
JSON形式のファイルを読み込んでPythonオブジェクトへ
# -*- coding: utf-8 -*-
import json
"""
data.jsonの中身は以下
[{"id": 1, "name": "apple"}, {"id": 2, "name": "orange"}]
"""
with open('data.json', 'r') as f:
data_json = json.load(f)
print(data_json)
print(type(data_json))
PythonオブジェクトをJSON形式でファイルに書き込み
# -*- coding: utf-8 -*-
import json
data2 = [{"id": 1, "name": "apple"}, {"id": 2, "name": "orange"}]
print(data2)
print(type(data2))
with open('data2.json', 'w') as f:
json.dump(data2, f)
オブジェクトの変換(json.loads/dumps)
loads/dumps
は三単現のsに見えるが、
おそらくload(str)/dump(str)
の略ではないか(未確認)
JSON文字列からPythonオブジェクトへ変換(デコード)
# -*- coding: utf-8 -*-
import json
data_json = '[{"id": 1, "name": "apple"}, {"id": 2, "name": "orange"}]'
print(data_json)
print(type(data_json))
data = json.loads(data_json)
print(data)
print(type(data))
PythonオブジェクトからJSON文字列へ変換(エンコード)
# -*- coding: utf-8 -*-
import json
data = [{"id": 1, "name": "apple"}, {"id": 2, "name": "orange"}]
print(data)
print(type(data))
data_json = json.dumps(data)
print(data_json)
print(type(data_json))
まとめ
今回は、PythonでJSONを扱うための方法をまとめました。
基本的には2つの方法があり、「ファイルの入出力」を扱う場合と、「オブジェクトの変換」を扱う場合がございます。
若干、おぼえにくいですが、
「文字列とやり取りするにはS
をつける!」
と覚えておけば間違いなしです!