TwitterBot on GAEのTwitterからのデータ取得をXMLからJSONにする
http://d.hatena.ne.jp/intheflight/20090613/p1
リンク先の更新でTwitterから取得したデータをXMLパーサでパースして、データストアに格納するということをやっているわけだけど、こんな面倒なことしなくても、おれらにはJSONがあった! JSON使えばTwitterデータをパパッとデータストアに格納できることがわかったので、XMLをJSONに書き直しました。今回はその流れです。まずは、データモデルですが、それはそのまま流用できます。Twitterからのデータ取得にはJSONを指定します。
url = "http://twitter.com/statuses/mentions.json"
あとは取得したJSONデータをPythonの辞書に変換し、そこから必要なデータをデータストアに格納するという流れになります。めっちゃ簡単。変換処理にはsimplejsonを使います。GAEにはDjangoフレームワークが付属していて、その中にsimplejsonが含まれているので、最初に、
from django.utils import simplejson
そして、取得したJSONデータを変換して、データストアに格納です。
results = simplejson.loads(json_result.content); for st in results: status = Status() status.id = st["id"] status.user = st["user"]["screen_name"] status.text = st["text"] status.created_at = self._change_date(st["created_at"]) status.put()
簡単過ぎる。何気にGAEにsimplejsonって最強な気がします。