Will return a dict with Google JSON structure for charts

            The Google structure::

                {
                    cols: [{id:<COL_NAME>, label:<LABEL FOR COL>, type: <COL TYPE>}, ...]
                    rows: [{c: [{v: <COL VALUE}, ...], ... ]
                }

            :param data:
            :param labels: dict with labels to include on Google JSON strcut
            :return: dict with Google JSON structure

def to_json(self, data, labels=None):
        """
            Will return a dict with Google JSON structure for charts

            The Google structure::

                {
                    cols: [{id:<COL_NAME>, label:<LABEL FOR COL>, type: <COL TYPE>}, ...]
                    rows: [{c: [{v: <COL VALUE}, ...], ... ]
                }

            :param data:
            :param labels: dict with labels to include on Google JSON strcut
            :return: dict with Google JSON structure
        """
        labels = labels or dict()
        json_data = dict()
        json_data["cols"] = []
        # Create Structure to identify the grouped columns
        for group_col in self.group_bys_cols:
            label = "" or as_unicode(labels[group_col])
            json_data["cols"].append(
                {"id": group_col, "label": label, "type": "string"}
            )
        # Create Structure to identify the Aggregated columns
        for aggr_col in self.aggr_by_cols:
            if isinstance(aggr_col, tuple):
                label_key = aggr_col[0].__name__ + aggr_col[1]
                aggr_col = aggr_col[1]
            else:
                label_key = aggr_col
            label = "" or as_unicode(labels[label_key])
            json_data["cols"].append({"id": aggr_col, "label": label, "type": "number"})
        # Create Structure with the data
        json_data["rows"] = []
        for item in data:
            row = {"c": []}
            if not isinstance(item[0], tuple):
                row["c"].append({"v": "{0}".format(item[0])})
            else:
                for group_col_data in item[0]:
                    row["c"].append({"v": "{0}".format(group_col_data)})
            for col_data in item[1:]:
                if isinstance(col_data, datetime.date):
                    row["c"].append({"v": "{0}".format(col_data)})
                else:
                    row["c"].append({"v": col_data})
            json_data["rows"].append(row)
        return json_data