GoogleSuggestAPIでウェブアプリづくり

Google App Engine上(PythonSDK)でGoogleサジェストのウェブアプリをつくりたいなあーと思っているんですが、Google Suggest APIをurlfetchしてXMLをパースするのにすごい時間苦戦したのでメモ。同じように困ってる人なんてほぼいないといっていいでしょうが。。。

苦戦したのは取得したXMLオブジェクトをminidomでパースしてやる処理。UnicodeDecodeErrorでutf8でデコードできない文字が入っているよとのこと。ソースはutf8で書いていて、取得したXMLもutf8だと思っていたのだけどなぜかshift-jisだった。decodeとencodeをいろいろ試したけど結局解決出来なかったので、なぜXMLがshift-jisで返ってくるのかを調べたところ、ブラウザでAPIのURLを叩いた場合はXMLもutf8でレスポンスが返ってきていた。そこでurlfetchのリクエストヘッダでUAを適当にFireFoxとかで指定するようにしたらutf8でXMLが返され、パースもすんなりうまくいった。UA指定がないとshift-jisで返す仕様なのかなあ・・・変なの。

あとデバッグするのにloggingを使ってるんですけど、開発環境だとコンソールで日本語表示が基本できないみたいなんだよね。これも最初気づかずに何がおかしいのか全然わからなかったよ。