def refine_json(request, reconciliation_type):
    
    fuzzy=True
    if reconciliation_type == 'fec_ids':
        pass
    elif reconciliation_type == 'fec_ids_nofuzzy':
        fuzzy=False
    else:
        raise Exception ("Invalid reconciliation type: %s" % (reconciliation_type))
    
    queries = request.REQUEST.get('queries')
    if queries:
        q = json.loads(queries)
        thisjson={}
        if q is not None:
            for key, query in q.iteritems():
                
                state = query.get('state', None)
                office = query.get('office', None)
                cycle = query.get('cycle', None)
                result = run_fec_query(query['query'], state=state, office=office, cycle=cycle, fuzzy=fuzzy)
                thisjson[key] = {'result':result}
        return render_to_json(json.dumps(thisjson))

        
    else:
        message = "Couldn't decode the query JSON!"
        return render_to_json("{'Error':'%s'}" % message)
def do_fec_query(query, fuzzy=True):
    #print "running query: %s" % (query['query'])
    properties = normalize_properties(query)
    #print "running query with properties=%s" % (properties)
    state = None
    office = None
    cycle = None
    if properties:
        for thisproperty in properties:
            for key in thisproperty:
                if key=='state':
                    state = thisproperty['state']
                elif key =='office':
                    office = thisproperty['office']
                elif key =='cycle':
                    cycle = thisproperty['cycle']
    match_key_hash = run_fec_query(query['query'], state=state, office=office, cycle=cycle, fuzzy=fuzzy)
    return match_key_hash