JSONとは何でしょうか?
このような疑問にお答えします。
JSON(JavaScript Object Notation)は、JavaScriptの表記法に基づいたデータフォーマットです。JSONのデータフォーマットとしては、下記のようになります。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
{ "movie": { "id": 111111, "url": "https://sample.com", "title": "sample", "countries": [ "日本" ], "score": 5, "genres": [ "ドラマ", "映画" ] }, "reviews": { "text": "pythonによるjsonデータ処理", "score": 5 } } |
keyとvalueを”:”により関連付けるように記述することができます。このようなデータの記述により、key情報を与えることで簡単にvalue(データ)を取り出すことができるようになります。
それでは、pythonを用いてJSONデータから情報を取り出してみましょう。
今回は、様々な方法を用いて情報にアクセスしてみます。具体的には、以下のアクセス方法を行ってみます。
- キーを指定したアクセス
- getメソッドを用いたアクセス
- getメソッドを用いた深い階層へのアクセス
ソースコードは、以下になります。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
# coding: utf-8 import json import os def fn_json_parse(filename): if os.path.isfile(filename): with open(filename) as f: data = json.load(f) # 各要素への様々なアクセス方法 print("【キーを指定してアクセス】") print("data[\'movie\']===>", data['movie']) print("data[\'reviews\']===>", data['reviews']) print("【get()を用いたアクセス】") print("data.get(\'movie\')===>", data.get('movie')) print("data.get(\'reviews\')===>", data.get('reviews')) print("【get()を用いた深い階層へのアクセス】") print("data.get(\'movie\').get(\'title\')===>", data.get('movie').get('title')) print("data.get(\'reviews\').get(\'text\')===>", data.get('reviews').get('text')) else: pass if __name__ == '__main__': filename = input('input filename->') fn_json_parse(filename) |
jsonデータを【sample.json】として保存し、入力します。
データ名は、お好みのもので良いです。
1 |
input filename->sample.json |
出力結果は、以下のようになります。
1 2 3 4 5 6 7 8 9 |
【キーを指定してアクセス】 data['movie']===> {'id': 111111, 'url': 'https://sample.com', 'title': 'sample', 'countries': ['日本'], 'score': 5, 'genres': ['ドラマ', '映画']} data['reviews']===> {'text': 'pythonによるjsonデータ処理', 'score': 5} 【get()を用いたアクセス】 data.get('movie')===> {'id': 111111, 'url': 'https://sample.com', 'title': 'sample', 'countries': ['日本'], 'score': 5, 'genres': ['ドラマ', '映画']} data.get('reviews')===> {'text': 'pythonによるjsonデータ処理', 'score': 5} 【get()を用いた深い階層へのアクセス】 data.get('movie').get('title')===> sample data.get('reviews').get('text')===> pythonによるjsonデータ処理 |
key情報を与えることで簡単にvalue(データ)を取り出すことができますね。
今回は、pythonを用いてJSONデータを扱いましたが、
JSONは、python以外の様々な言語でも利用することができます。
是非挑戦してみてください。