天気情報を使いたかったので、グーグルの天気APIを使うGAE用のpythonクラスを作った。素人が作っているので適当。
海外のサイトでグーグルの社員さんが答えているのをみると、このAPIは公式APIではないので、自己責任で使ってみたいに書いてあった。
以下クラス。とりあえず近況の天気と、温度だけ取れるようにした。天気に関する英単語の日本語訳は自信ない。天気情況の単語は把握できた分は全部載せたけど、まだ他にもありそうな予感。キャッシュはmemcacheを使い15分間保存。
[python]
#coding: utf-8
from xml.etree.ElementTree import XML, ElementTree, Element
import urllib
import urllib2
from google.appengine.api import memcache
class Gweather:
	def __init__(self, name):
		self.cityname = name
	def search_wether_ja(self):
		wxml = self.get_greetings()
		dom = wxml
		dom = dom.getroot()
		dom = dom.find(“weather/current_conditions/condition”)
		dom = dom.get(“data”)
		wether_list = {“Clear”:”晴れ”,”Sunny”:”晴れ”,”Overcast”:”くもり”,”Heavy Rain”:”大雨”,”Light rain”:”小雨”,”Rain Showers”:”にわか雨”,”Showers”:”にわか雨”,”Mostly_Sunny”:”ほぼ晴れ”,”Partly Cloudy”:”晴れときどき曇”,”Mostly Cloudy”:”ほぼ曇”,”Chance_of_Storm”:”嵐のおそれ”,”Rain”:”雨”,”Chance_of_Rain”:”雨のおそれ”,”Cloudy”:”くもり”,”Mist”:”霧”,”Storm”:”嵐”,”Thunderstorm”:”雷雨”,”Chance_of_Tstorm”:”雷雨のおそれ”,”Sleet”:”みぞれ”,”Snow”:”雪”,”Icy”:”氷”,”Dust”:”ダスト”,”Fog”:”霧”,”Smoke”:”スモーク”,”Haze”:”もや”,”Flurries”:”突風”}
		weatherkey = wether_list.get(dom,””)
		return weatherkey
	def search_temp(self):
		wxml = self.get_greetings()
		dom = wxml
		dom = dom.getroot()
		dom = dom.find(“weather/current_conditions/temp_c”)
		dom = dom.get(“data”)
		return dom
	def get_greetings(self):
		greetings = memcache.get(self.cityname)
		if greetings is not None:
			return greetings
		else:
			greetings = self.render_greetings()
		if not memcache.add(self.cityname, greetings, 900):
			logging.error(“Memcache set failed.”)
		return greetings
	def render_greetings(self):
		url2 = “http://www.google.com/ig/api?weather=”+self.cityname
		xml = ElementTree(file=urllib2.urlopen(url2))
		return xml
[/python]
以下、実際に使う場合。Gweather(“ここに地名を英語で入れる”)。以下はロンドンの場合。
[python]
from gweather import Gweather
		try:
			dom_london = Gweather(“london”)
			london_weather = dom_london.search_wether_ja()
			londontemp = dom_london.search_temp()
		except:
			london_weather =””
			londontemp = “”
[/python]
ちなみにAPIで帰ってくるXMLは以下。かなり詳細な情報が得られる。地名も細かい指定ができる。
[xml]
[/xml]
pythonは、0から始める人向けの【Pythonスタートブック】をまず2,3日でやって、あとは、【みんなのPython 改訂版】で必要な物だけ、芋づる式に調べて使ってます。1冊目で全体像を頭に入れて、2冊目を逆引きに使う感じ。この2冊はかなり役に立ちました。