目次
1.実行環境
2.JSONとは
JSONはJavaScript 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で行うことが多いと思いますので、
こうしたライブラリを使用しての変換は多いかと思います。
今回のサンプルコードは実践的ではありませんが、何かの参考になればよいと思います。
以上