search
LoginSignup
125

More than 1 year has passed since last update.

posted at

updated at

PythonでJSON 読み込み

下準備

使用するjsonファイルを作成しておきます。
ファイル名はqitta_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('qitta_json.json', 'r')

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

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

json_load = json.load(json_open)

一旦見てみましょう

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

import json

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

print(json_load)

実行結果

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

無事読み込めましたね!

とりあえず何か値を取り出してみる

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

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

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

実行結果

key1

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

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

for文で値をとる

import json

json_open = open('qitta_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('qitta_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)

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
What you can do with signing up
125