LoginSignup
138

PythonでJSON 読み込み

Last updated at Posted at 2019-10-04

下準備

使用する json ファイルを作成しておきます。
ファイル名はqiita_json.jsonにしました。

{
    "section1":{
        "key":"key1",
        "number": 1
    },

    "section2":{
        "key":"key2",
        "number": 2
    }
}

モジュールをインポート

まずはモジュールをインポートしましょう。

import json

ファイルを開く

下のように読み込みたいファイルを指定してopen関数で開いてあげます。
rはreadのrです。
変数1 = open('読み込みたいjsonファイルのパス','r')

json_open = open('qiita_json.json', 'r')

開いたファイルをJSONとして読み込む

先ほど開いたファイル(変数1)をjson.load関数でJSONにします。
変数2 = json.load(変数1)

json_load = json.load(json_open)

一旦見てみましょう

ではここまでの成果を確認してみましょう。

import json

json_open = open('qiita_json.json', 'r')
json_load = json.load(json_open)

print(json_load)

実行結果

作業ディレクトリ>python qiita_json.py
{'section1': {'key': 'key1', 'number': 1}, 'section2': {'key': 'key2', 'number': 2}}

無事読み込めましたね!

#とりあえず何か値を取り出してみる#
次は読み込んだJSONから欲しいデータを取り出します。
例) section1keyの値を出力する。

import json
json_open = open('qiita_json.json', 'r')
json_load = json.load(json_open)

print(json_load['section1']['key'])

実行結果

key1

はい、ちゃんと取れましたね!

このようにJSONで読み込むとpythonの辞書型として保存されます。
辞書型が不安な人はどっかで確認しておきましょう。

for文で値をとる

import json

json_open = open('qiita_json.json', 'r')
json_load = json.load(json_open)

#valuesで値をとってくる
for v in json_load.values():
    print(v)

実行結果

{'key': 'key1', 'number': 1}
{'key': 'key2', 'number': 2}

sectionごとの値が取れましたね!!
でも多分これだと実用的じゃないので更にnumberの値だけとってこれるようにしましょう。

print(v)print(v['number'])に変えるだけでおけです。

import json

json_open = open('qiita_json.json', 'r')
json_load = json.load(json_open)

for v in json_load.values():
    #ここを変えました。
    print(v['number'])

実行結果

1
2

はい、できましたね!!

お疲れさまでした!!

参考

【Python入門】JSON形式データの扱い方
Pythonの辞書(dict)のforループ処理(keys, values, items)

5 年くらいの時を経て書き込み編を書きました...
良かったら見てあげてくださいまし...

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
138