from pymongo import MongoClient import rpy2.robjects as ro import json class reporter: def __init__(self, name, collec, keys, fexpr=None): count = 0 doc = None for doc in MongoClient()[name][collec].find(fexpr): try: if count == 0: ro.r('df = %s' %ro.Dataframe({key: float(doc[key]) for key in keys}).r_repr()) count += 1 else: ro.r('df[nrow(df)+1,] = %s' %ro.FloatVector([float(doc[key]) for key in keys]).r_repr()) except: pass self.df = ro.r('df') def respond(self, obj): print "Content-Type: application/json;charset=utf-8\n\r\n\r%s" %json.dumps(obj)