Python JSONをディクショナリにする(json.loads/load)

PythonのJSONをディクショナリ(辞書)にデコードするサンプルです。(確認環境:Python 3)

目次

サンプル 文字列のJSONを処理する(json.loads関数)
JSONをディクショナリにデコードする
ファイルのJSONを処理する(json.load関数)
ファイルのJSONをディクショナリにデコードする

文字列のJSONを処理する(json.loads関数)

json.loads(s, *, encoding=None, cls=None, object_hook=None, parse_float=None, parse_int=None, parse_constant=None, object_pairs_hook=None, **kw)
  • json.loads関数は、JSONをディクショナリにデコードします。
  • 1つめの引数にJSON文字列を指定します。
  • 2つめ以降の引数は省略可能です。
  • 先頭にimport jsonの記述が必要です。
  • 以下は、Python 3.7.3ドキュメントのJSON エンコーダおよびデコーダのリンクです。
    https://docs.python.org/ja/3/library/json.html

JSONをディクショナリにデコードする

# coding: utf-8
import json

a = '{"color1":"赤","color2":"青"}';

b = json.loads(a);

print(b) #{'color1': '赤', 'color2': '青'}

print (b.keys()) #dict_keys(['color1', 'color2'])
print (b.values()) #dict_values(['赤', '青'])

print (b["color1"]) #赤
print (b.get("color2")) #青

4行目は、JSON文字列です。
6行目は、json.loads関数でデコードしています。
8行目は、ディクショナリを表示しています。
10行目は、ディクショナリのキーを表示しています。
11行目は、ディクショナリの値を表示しています。
13,14行目は、ディクショナリのキーを指定して値を表示しています。

 

ファイルのJSONを処理する(json.load関数)

json.load(fp, *, cls=None, object_hook=None, parse_float=None, parse_int=None, parse_constant=None, object_pairs_hook=None, **kw)
  • json.load関数は、ファイルにあるJSONをディクショナリにデコードします。
  • 1つめの引数にファイルから読み込んだ変数を指定します。
  • 2つめ以降の引数は省略可能です。
  • 先頭にimport jsonの記述が必要です。
  • 以下は、Python 3.7.3ドキュメントのjson.loadのリンクです。
    https://docs.python.org/ja/3/library/json.html#json.load

ファイルのJSONをディクショナリにデコードする

読み込むファイルのJSONです。

{
    "color1": "赤",
    "color2": "青"
}

上記ファイルを読み込むコードです。

# coding: utf-8
import json

a = open('test1.json', 'r')

b = json.load(a);

print(b) #{'color1': '赤', 'color2': '青'}

print (b.keys()) #dict_keys(['color1', 'color2'])
print (b.values()) #dict_values(['赤', '青'])

print (b["color1"]) #赤
print (b.get("color2")) #青

4行目は、open関数でファイルを開いています。
6行目は、json.load関数でデコードしています。
8行目は、ディクショナリを表示しています。
10行目は、ディクショナリのキーを表示しています。
11行目は、ディクショナリの値を表示しています。
13,14行目は、ディクショナリのキーを指定して値を表示しています。

関連の記事

Python ディクショナリの仕組みと使い方(dictionary)
Python JSONをディクショナリにする(json.loads/load)

△上に戻る