Sassyブログ

好きなことで暮らしを豊かにするブログ

Python入門 JSONを扱ってみよう

f:id:y_saiki:20171024233602j:plain

目次

1.実行環境

2.JSONとは

JSONJavaScript Object Notationの略でJavaScriptのデータ構造形式のことを指します。
JSON形式は現在では一番ポピュラーなデータ構造です。
現在ではどの言語でもJSONパーサーのライブラリがあるので、JSON形式で受け取ったデータを自身のプログラムで扱えるデータ構造に変換して使用したりすることができます。

3.JSONエンコードしてみる

エンコードPythonのデータ構造をJSON形式に変換します。

3-1.サンプルコード

json_util.py

    #_*_ coding: utf-8 _*_

    
    import json

    
    def encode(dic):

        return json.dumps(dic, indent=4)

main.py

    #_*_ coding: utf-8 _*_

    
    import json_util

    
    if __name__ == "__main__":

        dic_data = {"test1" : {"name" : "ichiro", "age" : "30", "hobby" : ("hobby1", "hobby2")}, "test2" : {"name" : "jiro", "age" : "29", "hobby" : ("hobby3", "hobby4")}}

        json_data = json_util.encode(dic_data)

        print json_data

※ 6行目のhobby部分のデータ形式は実用的にするのであればリスト形式にしたほうが良いかと思いますが、今回はその部分がJSONに変換されたときに[]に変わっていることを確認したいため、敢えてタプル形式にしております。

3-2.実行結果

{

    "test1": {

        "hobby": [

            "hobby1",

            "hobby2"

        ],

        "age": "30",

        "name": "ichiro"

    },

    "test2": {

        "hobby": [

            "hobby3",

            "hobby4"

        ],

        "age": "29",

        "name": "jiro"

    }

}

4.JSONをデコードしてみる

デコードはJSON形式をPythonのデータ構造に変換します。

4-1.サンプルコード

json_util.py

    #_*_ coding: utf-8 _*_

    
    import json

    
    def encode(dic):

        return json.dumps(dic, indent=4)

    
    def decode(json_data):

        return json.loads(json_data)

~

main.py

    #_*_ coding: utf-8 _*_

    
    import json_util

    
    if __name__ == "__main__":

        data = {"test1" : {"name" : "ichiro", "age" : "30", "hobby" : ("hobby1", "hobby2")}, "test2" : {"name" : "jiro", "age" : "29", "hobby" : ("hobby3", "hobby4")}}

        json_data = json_util.encode(data)
    
        print json_data
    
        py_data = json_util.decode(json_data)

        print py_data

4-2.実行結果

{

    "test1": {

        "hobby": [

            "hobby1",

            "hobby2"

        ],

        "age": "30",

        "name": "ichiro"

    },

    "test2": {

        "hobby": [

            "hobby3",

            "hobby4"

        ],

        "age": "29",

        "name": "jiro"

    }

}

{u'test1': {u'hobby': [u'hobby1', u'hobby2'], u'age': u'30', u'name': u'ichiro'}, u'test2': {u'hobby': [u'hobby3', u'hobby4'], u'age': u'29', u'name': u'jiro'}}

5.最後に

以上でPythonデータ形式からJSON形式データへ、JSON形式のデータからPythonデータ形式への変換を行ってみました。
WebAPI開発など他システムとHTTPで通信するシステムなどではデータのやり取りをJSONで行うことが多いと思いますので、 こうしたライブラリを使用しての変換は多いかと思います。
今回のサンプルコードは実践的ではありませんが、何かの参考になればよいと思います。

以上