后面assert判断不用int而用str的话,会简洁些
class weatherSaxHandler(object): def __init__(self): self.location = {} self.forcast = [] def start_element(self, name, attrs): if name == 'yweather:location': self.location = attrs if name == 'yweather:forecast': self.forcast.append(attrs) def end_element(self, name): pass def char_data(self,text): pass def parse_weather(xml): parser = ParserCreate() handler = weatherSaxHandler() parser.StartElementHandler = handler.start_element parser.EndElementHandler = handler.end_element parser.CharacterDataHandler = handler.char_data parser.Parse(xml) today = { 'text': handler.forcast[0]['text'], 'low': int(handler.forcast[0]['low']), 'high': int(handler.forcast[0]['high']) } tomorrow = { 'text': handler.forcast[1]['text'], 'low': int(handler.forcast[1]['low']), 'high': int(handler.forcast[1]['high']) } d = { 'today': today, 'tomorrow': tomorrow } d.update(handler.location) return d
Sign in to make a reply
林er爱喝果汁Q
后面assert判断不用int而用str的话,会简洁些