2012
04
30
04
30
Python 2.7↑とJSONの相性の良さ(辞書内包表記)
そのAJAXを実装するのにとても便利なJSONだが、Pythonでは2.7以降に辞書内包表記というのが追加されたので、JSONとの相性が随分良くなった。
Pythonの辞書型とJavaScriptのオブジェクトは良く似ていて、同一の表記方法が適用できる。下記のスクリプトはPythonでもJavaScriptでも実行できる。
Pythonには『json』というモジュールがあり、辞書型の変数から容易にJSONデータを作れる。"json.dumps(data)"とすれば良い。そこで複数行にまたぐループを書かずに辞書型オブジェクトを作れる”辞書内包表記”の出番だ。以下に一つ、リストから一行で辞書型を作ってJSONデータに変換するスクリプトを書いてみた。
サーバのレスポンスヘッダの'content-type'を'application/json'にセットすればJSONデータをクライアントに渡せる。
Pythonの辞書型とJavaScriptのオブジェクトは良く似ていて、同一の表記方法が適用できる。下記のスクリプトはPythonでもJavaScriptでも実行できる。
data = {"h1": "1", "h2": "2", "h3": "3",}
value = data["h1"]
Pythonには『json』というモジュールがあり、辞書型の変数から容易にJSONデータを作れる。"json.dumps(data)"とすれば良い。そこで複数行にまたぐループを書かずに辞書型オブジェクトを作れる”辞書内包表記”の出番だ。以下に一つ、リストから一行で辞書型を作ってJSONデータに変換するスクリプトを書いてみた。
import re
import json
string = """<h>Camus</h>
<h>Dostoevsky</h>
<h>Hesse</h>
<h>Seren</h>
<h>Piere</h>"""
li = re.findall(r"<h>(.*?)</h>", string)
dc = {"h" + str(x): body for x, body in enumerate(li)}
str_json = json.dumps(dc)
#GoogleAppEngineでは以下のようにしてクライアントに返せる
#self.response.headers.add_header('content-type', 'application/json', charset='utf-8')
#self.response.out.write(str_json)
サーバのレスポンスヘッダの'content-type'を'application/json'にセットすればJSONデータをクライアントに渡せる。
スポンサーサイト