ライブラリ

JSONモジュールの使い方

jsonモジュール

「json」はJavaScriptのオブジェクトの記述方法と似ている「軽量なデータ交換フォーマット」で、データを扱うアプリケーションで主に使われています。

Pythonではjsonをうまく扱うためのモジュールが数多く用意されていますので、それぞれの使い方を解説します。

jsonを辞書とリストの組み合わせに変更する

json文字列をPythonの辞書とリストの組み合わせに変換するにはjson.loads()またはjson.load()を使います。

json.loads()は文字列を、json.load()はjsonファイルをそれぞれ引数に取り変換します。

次の例はjson.loads()を使って文字列を変換しています。

import json

json_str = '{"id":"001", "numbers":[1, 2, 3], "colors":["blue", "yellow", "red"]}'
json_obj = json.loads(json_str)
print(json_obj)
print(json_obj['id'])
print(json_obj['numbers'])

[出力結果]

{'id': '001', 'numbers': [1, 2, 3], 'colors': ['blue', 'yellow', 'red']}
001
[1, 2, 3]

json_strはjson文字列が格納されており、json.loads()を使って辞書とリストの組み合わせに変換しています。

結果をみてわかる通り、[‘id’]は001を、[‘numbers’]は数値のリストを取得できています。

また、jsonファイルを直接変換する場合はjson.load()を使います。

ファイル[sample.json]

{
  "id": "001",
  "numbers": [
    1,
    2,
    3
  ],
  "colors": [
    "blue",
    "yellow",
    "red"
  ]
}
import json

json_file = open('sample/sample.json', 'r') #readでオープン
json_obj = json.load(json_file)
print(json_obj)
print(json_obj['id'])
print(json_obj['numbers'])

辞書とリストの組み合わせをjsonに変換する

先ほどとは反対方向に、辞書とリストの組み合わせとjsonに変換する場合はjson.dumps()やjson.dump()を使います。

json.dumps()は文字列へ、json.dump()はファイルへ直接書き込みできます。

次の例はjson.dumps()を使って文字列へ変換しています。

import json

python_obj = {"id":"001", "numbers":[1, 2, 3], "colors":["blue", "yellow", "red"]}
json_str = json.dumps(python_obj)
print(json_str)
print(type(json_str))

[出力結果]

{"id": "001", "numbers": [1, 2, 3], "colors": ["blue", "yellow", "red"]}
<class 'str'>

json.dumps()で辞書をjson文字列へ変換しています。

type(json_str)の出力結果を見ても分かる通り、ちゃんと文字列へ変換されていますね。

また、json.dump()は直接ファイルへjsonを書き込みたいときに使います。

import json

python_obj = {"id":"001", "numbers":[1, 2, 3], "colors":["blue", "yellow", "red"]}
json_file = open('output.json', 'w') #writeで開く
json.dump(python_obj, json_file)
json_file.close()

[出力結果( output.json)]

{"id": "001", "numbers": [1, 2, 3], "colors": ["blue", "yellow", "red"]}
タイトルとURLをコピーしました