JSON
Pythonでは標準ライブラリでJSON(JavaScript Object Notation)APIの利用が可能です。
下記例ではディクショナリオブジェクトをJSONでエンコードしています。
# -*- coding: utf-8 -*-
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)
--実行結果--
<type 'dict'>
{"Python": "python-izm.com", "SearchEngin": ["google.co.jp", "yahoo.co.jp"]}
<type 'str'>
「dumps」を利用してエンコードを行う前はディクショナリですが、エンコード後はJSON文字列へ変換されています。
「dumps」へ「indent」を設定すると、指定した数値でインデント表示を行います。
# -*- coding: utf-8 -*-
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」でデコードします。
# -*- coding: utf-8 -*-
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)
--実行結果--
<type 'str'>
{u'Python': u'python-izm.com', u'SearchEngin': [u'google.co.jp', u'yahoo.co.jp']}
<type 'dict'>
JSON文字列からディクショナリへ変換が行われます。
単純明快にデータを取得!
▶応用編:XML-RPCクライアント
