Pythonのjsonモジュールを使用するとJSON形式のファイルや文字列を辞書(dict)などのオブジェクトとして受け取ることができる。
#1.JSON文字列を辞書に変換
json.loads()関数を使用する。
s = r'{"C": "\u3042", "A": {"i": 1, "j": 2}, "B": [{"X": 1, "Y": 10}, {"X": 2, "Y": 20}]}'
print(s)
# {"C": "\u3042", "A": {"i": 1, "j": 2}, "B": [{"X": 1, "Y": 10}, {"X": 2, "Y": 20}]}
d = json.loads(s)
print(d)
# {'A': {'i': 1, 'j': 2}, 'B': [{'X': 1, 'Y': 10}, {'X': 2, 'Y': 20}], 'C': 'あ'}
print(type(d))
# <class 'dict'>
#2.JSONファイルを辞書として読み込み
json.load()関数を使用する。
with open('/test.json') as f:
print(f.read())
# {"C": "\u3042", "A": {"i": 1, "j": 2}, "B": [{"X": 1, "Y": 10}, {"X": 2, "Y": 20}]}
#3.辞書をJSON文字列にして出力
json.dumps()関数を使用する。
d = {'A': {'i': 1, 'j': 2},
'B': [{'X': 1, 'Y': 10},
{'X': 2, 'Y': 20}],
'C': 'あ'}
sd = json.dumps(d)
print(sd)
# {"A": {"i": 1, "j": 2}, "B": [{"X": 1, "Y": 10}, {"X": 2, "Y": 20}], "C": "\u3042"}
print(type(sd))
# <class 'str'>
#4.辞書をJSONファイルとして保存
json.dump()関数を使用。
d = {'A': {'i': 1, 'j': 2},
'B': [{'X': 1, 'Y': 10},
{'X': 2, 'Y': 20}],
'C': 'あ'}
with open('/test.json', 'w') as f:
json.dump(d, f, indent=4)