class UFGoogleDataSerializer(object): def __init__(self, symbol): self.symbol = symbol def fetch(self): self.financials = GoogleFinance().getFinancials(self.symbol) def serialize_financials(self): self.result = {} h = HTMLParser.HTMLParser() for item_name, values in self.financials.iteritems(): item_name = h.unescape(item_name) statement_type = GoogleLedgerItem.get_statement_type(item_name) for date, value in values.iteritems(): if value: d = GoogleDateParser(date) self._store_result(d, statement_type, item_name, value) print self.result def _store_result(self, date, statement_type, item_name, value): day = date.getDay() period = date.getPeriod() if day not in self.result: self.result[day] = {} if statement_type not in self.result[day]: self.result[day][statement_type] = {} if period not in self.result[day][statement_type]: self.result[day][statement_type][period] = {} assert item_name not in self.result[day][statement_type][period] self.result[day][statement_type][period][item_name] = value