def get(self, query_id, query_result_id=None): if not query_result_id: query = models.Query.get(models.Query.id == query_id) if query: query_result_id = query._data['latest_query_data'] query_result = query_result_id and data_manager.get_query_result_by_id( query_result_id) if query_result: s = cStringIO.StringIO() query_data = json.loads(query_result.data) writer = csv.DictWriter( s, fieldnames=[col['name'] for col in query_data['columns']]) writer.writer = utils.UnicodeWriter(s) writer.writeheader() for row in query_data['rows']: for k, v in row.iteritems(): if isinstance( v, numbers.Number) and (v > 1000 * 1000 * 1000 * 100): row[k] = datetime.datetime.fromtimestamp(v / 1000.0) writer.writerow(row) return make_response(s.getvalue(), 200, {'Content-Type': "text/csv; charset=UTF-8"}) else: abort(404)
def get(self, query_id, query_result_id=None): if not query_result_id: query = models.Query.get(models.Query.id == query_id) if query: query_result_id = query._data['latest_query_data'] query_result = query_result_id and data_manager.get_query_result_by_id(query_result_id) if query_result: s = cStringIO.StringIO() query_data = json.loads(query_result.data) writer = csv.DictWriter(s, fieldnames=[col['name'] for col in query_data['columns']]) writer.writer = utils.UnicodeWriter(s) writer.writeheader() for row in query_data['rows']: for k, v in row.iteritems(): if isinstance(v, numbers.Number) and (v > 1000 * 1000 * 1000 * 100): row[k] = datetime.datetime.fromtimestamp(v/1000.0) writer.writerow(row) return make_response(s.getvalue(), 200, {'Content-Type': "text/csv; charset=UTF-8"}) else: abort(404)
def get(self, query_result_id): query_result = data_manager.get_query_result_by_id(query_result_id) if query_result: return {'query_result': query_result.to_dict(parse_data=True)} else: abort(404)