主にプログラミングに関して。Python, .NET Framework(C#), JavaScript, その他いくらか。
記事にあるサンプルやコードは要検証。使用に際しては責任を負いかねます

スポンサーサイト

                
tags:
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

Python 2.7↑とJSONの相性の良さ(辞書内包表記)

                
tags:
 そのAJAXを実装するのにとても便利なJSONだが、Pythonでは2.7以降に辞書内包表記というのが追加されたので、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データをクライアントに渡せる。
スポンサーサイト
プロフィール

Matoba

Author:Matoba

最新記事
リンク
作ったものなど
月別アーカイブ
カテゴリ
タグリスト

検索フォーム
Amazon
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。