Pythonでは標準ライブラリでJSON(JavaScript Object Notation)APIの利用が可能です。
オブジェクトからJSON文字列
次の例はdumpsを用いてPythonオブジェクト(ディクショナリ)からJSON形式の文字列へ変換を行っています。
import json json_data = {'Python':'python-izm.com', 'SearchEngine':('google.co.jp', 'yahoo.co.jp')} print(type(json_data)) encode_json_data = json.dumps(json_data) print(encode_json_data) print(type(encode_json_data))
<class 'dict'> {"Python": "python-izm.com", "SearchEngine": ["google.co.jp", "yahoo.co.jp"]} <class 'str'>
dumpsを利用して変換を行う前はディクショナリですが、変換後はJSON文字列として利用可能な形となります。
見やすい形で変換
dumpsでindentを指定すると、数値に応じたインデント表示を行います。
import json json_data = {'Python':'python-izm.com', 'SearchEngin':('google.co.jp', 'yahoo.co.jp')} encode_json_data = json.dumps(json_data, indent=4) print(encode_json_data)
{ "Python": "python-izm.com", "SearchEngin": [ "google.co.jp", "yahoo.co.jp" ] }
JSON文字列からオブジェクト
次の例はloadsを用いてJSON文字列からPythonオブジェクト(ディクショナリ)へ変換を行っています。
import json json_data = {'Python':'python-izm.com', 'SearchEngin':('google.co.jp', 'yahoo.co.jp')} encode_json_data = json.dumps(json_data) print(type(encode_json_data)) decode_json_data = json.loads(encode_json_data) print(decode_json_data) print(type(decode_json_data))
<class 'str'> {'Python': 'python-izm.com', 'SearchEngin': ['google.co.jp', 'yahoo.co.jp']} <class 'dict'>