ホーム >  JavaScript >  実は簡単!JSON形式データを扱う方法

投稿日:   |  最終更新日:

実は簡単!JSON形式データを扱う方法

JavaScriptJSONPython

WEBアプリ開発者にとってJSONデータは避けて通れない存在です。今回は、このJSONデータをざっくり紹介します。

JSONとは?

JSONとはJavaScript Object Notationの略です。JavaScriptの書き方に寄せて書いてあるデータファイルという意味です。

実際には、以下のようなデータです。

{   
"scorelist":[
 
      {
        "Subject":"English",
        "score": 80, 
        "grade":"A" 
    },
     
     {
        "Subject":"Math",
        "score":  70,
        "grade":”B" 
    }
    
]
}

※サンプルは英語表記ですが、日本語(漢字)もデータとして利用できます。

準備

当サイトでは、Vagrantでゲスト環境(仮想環境)を作ってPythonを動かいていますが、それ以外の環境でも操作方法はだいたい同じです。

①Pythonをインストールします。

ConoHaのVPSにPython3環境を作る

環境

OS CentOS 7.1.1503
pyenv 1.1.3-5-g7dae197
Python 3.6.5

※OSはCentOS7ですが、Python3が使えればWindowsでももちろんMacOSでもOKです。


JSONファイルのルール

JSONファイルの書き方のルールは以下の通りです。

  • 文字列は””あるいは’’で囲う
  • key(名前)とvalue(値)を:で対にして記述
  • key(名前)とvalue(値)のまとまり毎に{}で囲う
  • まとまりのなかのkey:valueは,で区切る
  • リスト全体を[]で囲う

データを扱うファイルはJSONの他にもXMLなどがあります。私の個人的な意見かもしれませんが、JSONのほうがご覧の通り可読性が高いです。JSONの強みは、人間にも読みやすく、機械にも読み込ませることができることです。

JSONファイルのルール

Pythonでは、JSONデータを扱うためのメソッドが多数あります。ただし、Pythonで読み込ませるためにはPythonなりにデータをパース(解析)しなければなりません。パースすることにより、Pythonで扱えるようになり、他のファイルに書き込んだり、好きなデータを取得できるようになりあます。

具体的なパースの手順としては以下のようになります。

  • JSONデータを読み込む
  • 必要な情報を取り出す
  • 他のファイルに書き込む

JSONデータ読み込み

PythonでJsonデータを読み込むには、json.load関数を使います。

①pythonから先ほどのsample.jsonを以下のコードで読み込みます。

import json
a = open('sample.json')
b = json.load(a)

print (b)

以下のような実行結果が出力されます。

{'scorelist': [{'Subject': 'English', 'score': 80, 'grade': 'A'}, {'Subject': 'Math', 'score': 70, 'grade': 'B'}]}

解説

import json

まず1行目でjsonをライブラリをインポートします。

a = open('sample.json')

その後2行目で、jsonファイルを開きます。

b = json.load(a)

そして3行目に引数として、jsonの入ったaを渡し読み込みます。

辞書型

load関数にて読み込まれたJSONデータはdictionary(辞書)型にて保存されます。辞書型とは、「{}」の中にkeyvalueの組み合わせが含まれているPythonのデータです。

{key1:value1,key2:value2,key3:value3}

※各要素を取り出したい時はkeyを指定して取り出すことができます。


JSONデータを書き込み

他のファイルにJSONデータを書き込みます。JSONデータを書き込むには、json.dump関数を使います。

import json
 
dic =  {
            "profile1": { 
                                "first" : "Aaron" , 
                                "last" : "Campbell"
                            } ,                
             "profile2" : {
                                 "fisrt" : "Ben" , 
                                 "last" : "Edwards"
                                 } 
             }
            
a = open('sample2.json' , 'w')
json.dump(dic,a)

解説

import json
 
dic =  {
            "profile1": { 
                                "first" : "Aaron" , 
                                "last" : "Campbell"
                            } ,                
             "profile2" : {
                                 "fisrt" : "Ben" , 
                                 "last" : "Edwards"
                                 } 
             }

空のdic変数に辞書型のデータを入れます。(これがJSONデータとなります。)

a = open('sample2.json' , 'w')

空のsample2.jsonを開きます。事前に作っていなくても自動で現在のディレクトリにファイルが作成されます。’w’は書き込みの権限を与えるという意味です。

json.dump(dic,a)

json.dump(書き込まれるjson,書き込むjson)の順に記載して実行します。


JSONデータの中身を確認

コマンドラインを用いて、JSONの中身を確認します。今まではパースしてJSONを確認してきました。しかし少量のJSONをいちいち解析するのは正直めんどくさいときは、一発で中身を見やすく表示してくれるjson.toolというコマンドを紹介します。

①以下のコマンドを実行します。

python -m json.tool sample2.json

②以下の結果が表示されます。

{
    "profile1": {
        "first": "Tarou",
        "last": "Tanaka"
    },
    "profile2": {
        "fisrt": "Hanako",
        "last": "Yamada"
    }
}

まとめ

今回のまとめです。PythonでJSONは、以下のように操ることができます。

  • JSONとはjsをベースに書かれた可読性の高いデータファイル
  • JSONを読み込むには、openで開いてから、json.load関数を使う。
  • JSONを書き込むには、json.dump関数を使う。
  • 簡単な内容の場合には、コマンドラインからjson.toolを実行。

次回


トラックバック用のURL
プロフィール

名前:イワサキ ユウタ 職業:システムエンジニア、ウェブマスター、フロントエンドエンジニア 誕生:1986年生まれ 出身:静岡県 特技:ウッドベース 略歴 20

最近の投稿
人気記事
カテゴリー
広告