candidate['name'] = common.normalize_person_name(candidate['name']) candidate['party'] = party candidate['election_year'] = election_year if candidate['type'] == 'mayors': candidate['constituency'] = 0 candidate[ 'candidate_uid'], created = common.get_or_create_moyor_candidate_uid( c, candidate) else: candidate[ 'candidate_uid'], created = common.get_or_create_candidate_uid( c, candidate) candidate['candidate_term_uid'] = '%s-%s' % ( candidate['candidate_uid'], election_year) candidate[ 'councilor_uid'], created = common.get_or_create_councilor_uid( c, candidate, create=False) candidate['councilor_term_id'] = common.getDetailIdFromUid( c, candidate['councilor_uid'], election_year, candidate['county']) candidate['councilor_terms'] = common.councilor_terms( c, candidate) if created else None if candidate['type'] == 'mayors': candidate['mayor_uid'] = candidate['candidate_uid'] if candidate['mayor_uid']: candidate['mayor_terms'] = common.mayor_terms(c, candidate) candidate['legislator_uid'] = common.get_legislator_uid( c_another, candidate['name']) candidate['legislator_data'] = common.get_legislator_data( c_another, candidate['legislator_uid']) if candidate['legislator_uid']: candidate['legislator_terms'] = common.legislator_terms( c_another, candidate)
dict_list = json.load(open(f)) for bill in dict_list: bill['county'] = county bill.update({'uid': u'%s-%s' % (bill['county'], bill['id'])}) Bill(bill) for key, priproposer, petition in [('proposed_by', 0, False), ('petitioned_by', -1, True)]: for i, name in enumerate(bill.get(key, [])): name = common.normalize_person_name(name) name = re.sub(u'副?議長', '', name) if name: # councilor in bill might not on this election_year id, created = common.get_or_create_councilor_uid( c, dict( zip([ 'name', 'county', 'election_year', 'constituency' ], [name, county, bill['election_year'], None])), create=False) if id: detail_id = common.getDetailIdFromUid( c, id, bill['election_year'], county) CouncilorsBills(detail_id, bill['uid'], i == priproposer, petition) update_sponsor_param(bill['uid']) bill_party_diversity(bill['uid']) # Update bills_party_diversity of People for councilor_id in councilors(f_election_year, county): personal_vector(councilor_id) conn.commit() print 'bills done'
'../../data/tncc/councilors.json', '../../data/taitungcc/councilors.json', '../../data/hlcc/councilors.json', '../../data/cycc/councilors.json', '../../data/cyscc/councilors.json', '../../data/ylcc/councilors.json', '../../data/ntcc/councilors.json', '../../data/chcc/councilors.json', '../../data/tccc/councilors.json', '../../data/ilcc/councilors.json', '../../data/mcc/councilors.json', '../../data/hcc/councilors.json', '../../data/kmc/councilors.json', '../../data/tycc/councilors.json', '../../data/hsinchucc/councilors.json', '../../data/ntp/councilors.json', '../../data/tcc/councilors.json' ]: print council dict_list = json.load(open(council)) for councilor in dict_list: councilor = normalize_councilor(councilor) councilor['uid'], created = common.get_or_create_councilor_uid( c, councilor) Councilors(councilor) insertCouncilorsDetail(councilor) if councilor['in_office']: examinate_with_cand_moi(councilor) conn.commit() # insert councilor which elected=true in candidates but already gone in councils website election_year = '2014' c.execute( ''' SELECT * FROM candidates_terms WHERE election_year = %s and elected = true ORDER BY county ''', [election_year])
WHERE candidate_id = %s and election_year = %s ''', [councilor_id, councilor['candidate_id'], councilor['election_year']]) conn = db_settings.con() c = conn.cursor() # insert councilors which elected=true in candidates election_year = ast.literal_eval(argv[1])['election_year'] c.execute( ''' SELECT ct.*, c.birth FROM candidates_terms ct Join candidates_candidates c ON c.uid = ct.candidate_id WHERE type = 'councilors' and election_year = %s and elected = true ''', [election_year]) key = [desc[0] for desc in c.description] for row in c.fetchall(): person = dict(zip(key, row)) person['name'] = person['name'].decode('utf-8') print person['name'], person['county'], person['election_year'] person['uid'], created = common.get_or_create_councilor_uid(c, person) person['uid'] = uuid.UUID(person['uid']).hex person['in_office'] = True person['term_start'], person['term_end'] = common.get_term_range( person['county'], person['election_year']) person['term_end'] = {'date': person['term_end']} upsert_councilors(person) upsert_councilors_terms(person) conn.commit()