JSON変換 | Python-izm

JSON変換

Pythonでは標準ライブラリでJSONJavaScript 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'>