turn fec files into json
turn fec files into json
work in progress, not yet trustworthy
The purpose of this library is to turn files from the fec format into json.
Requires python3.x. To install dependencies, pip install -r requirements.txt
. We recommend you do that in a virtual enviromnet.
fec2json --path path/to/filing
Writes json to stdout.
Takes the following optional commandline arguments
--fecfile
if you have .fec files instead of .csv files (no argument needed, this stores a boolean, we assume it’s csv if not specified)--filing_id
to specify the filing id. If not specified, we assume it is the filename minus the directory path and extension.The code can currently be cloned from github and used as a library in another python app. TKTK: pip.
The json will have the following keys:
N
or A
)path/to/filing/filing_id.ext
.For example, a filing might look like this:
{
"record_type":"HDR",
"electronic_filing_type":"FEC",
"fec_version_number":"8.2",
"software_name":"NGP",
"software_version":"8",
"report_id":"",
"report_type":"",
"header_comment":"",
"form_type":"F3N",
"filer_committee_id_number":"C00654178",
"committee_name":"Sara Dady for Congress",
"change_of_address":"",
"street_1":"PO Box 7164",
"street_2":"",
"city":"Rockford",
"state":"IL",
"zip":"61126",
"report_code":"YE",
"election_code":"",
"election_date":"",
"election_state":"IL",
"election_district":"16",
"state_of_election":"",
"coverage_from_date":"20171001",
"coverage_through_date":"20171231",
"treasurer_last_name":"Lashock",
"treasurer_first_name":"Gwen",
"treasurer_middle_name":"",
"treasurer_prefix":"",
"treasurer_suffix":"",
"date_signed":"20180131",
"col_a_total_contributions_no_loans":"54485.57",
"col_a_total_contributions_refunds":"255.00",
"col_a_net_contributions":"54230.57",
"col_a_total_operating_expenditures":"72966.66",
"col_a_total_offset_to_operating_expenditures":"0.00",
"col_a_net_operating_expenditures":"72966.66",
"col_a_cash_on_hand_close_of_period":"23164.12",
"col_a_debts_to":"0.00",
"col_a_debts_by":"0.00",
"col_a_individual_contributions_itemized":"30420.00",
"col_a_individual_contributions_unitemized":"22850.57",
"col_a_total_individual_contributions":"53270.57",
"col_a_political_party_contributions":"0.00",
"col_a_pac_contributions":"1100.00",
"col_a_candidate_contributions":"115.00",
"col_a_total_contributions":"54485.57",
"col_a_transfers_from_authorized":"0.00",
"col_a_candidate_loans":"0.00",
"col_a_other_loans":"0.00",
"col_a_total_loans":"0.00",
"col_a_offset_to_operating_expenditures":"0.00",
"col_a_other_receipts":"0.00",
"col_a_total_receipts":"54485.57",
"col_a_operating_expenditures":"72966.66",
"col_a_transfers_to_authorized":"0.00",
"col_a_candidate_loan_repayments":"0.00",
"col_a_other_loan_repayments":"0.00",
"col_a_total_loan_repayments":"0.00",
"col_a_refunds_to_individuals":"255.00",
"col_a_refunds_to_party_committees":"54485.57",
"col_a_refunds_to_other_committees":"96385.78",
"col_a_total_refunds":"255.00",
"col_a_other_disbursements":"0.00",
"col_a_total_disbursements":"73221.66",
"col_a_cash_on_hand_beginning_period":"41900.21",
"col_a_total_disbursements_period":"73221.66",
"col_b_total_contributions_no_loans":"114759.59",
"col_b_total_contributions_refunds":"1055.00",
"col_b_net_contributions":"113704.59",
"col_b_total_operating_expenditures":"88530.47",
"col_b_total_offset_to_operating_expenditures":"0.00",
"col_b_net_operating_expenditures":"88530.47",
"col_b_individual_contributions_itemized":"73548.96",
"col_b_individual_contributions_unitemized":"37360.63",
"col_b_total_individual_contributions":"110909.59",
"col_b_political_party_contributions":"0.00",
"col_b_pac_contributions":"1100.00",
"col_b_candidate_contributions":"2750.00",
"col_b_total_contributions":"114759.59",
"col_b_transfers_from_authorized":"0.00",
"col_b_candidate_loans":"0.00",
"col_b_other_loans":"0.00",
"col_b_total_loans":"0.00",
"col_b_offset_to_operating_expenditures":"0.00",
"col_b_other_receipts":"0.00",
"col_b_total_receipts":"114759.59",
"col_b_operating_expenditures":"88530.47",
"col_b_transfers_to_authorized":"0.00",
"col_b_candidate_loan_repayments":"0.00",
"col_b_other_loan_repayments":"0.00",
"col_b_total_loan_repayments":"0.00",
"col_b_refunds_to_individuals":"1055.00",
"col_b_refunds_to_party_committees":"0.00",
"col_b_refunds_to_other_committees":"0.00",
"col_b_total_refunds":"1055.00",
"col_b_other_disbursements":"2010.00",
"col_b_total_disbursements":"91595.47",
"amendment":false,
"form":"F3",
"itemizations":{
"SchA":[
{
"form_type":"SA11AI",
"filer_committee_id_number":"C00654178",
"transaction_id":"760417",
"back_reference_tran_id_number":"",
"back_reference_sched_name":"",
"entity_type":"IND",
"contributor_organization_name":"",
"contributor_last_name":"Abedrabbo",
"contributor_first_name":"Kamal",
"contributor_middle_name":"",
"contributor_prefix":"",
"contributor_suffix":"",
"contributor_street_1":"515 Verona Dr",
"contributor_street_2":"",
"contributor_city":"Rockford",
"contributor_state":"IL",
"contributor_zip":"611075307",
"election_code":"P2018",
"election_other_description":"",
"contribution_date":"20171228",
"contribution_amount":"1000.00",
"contribution_aggregate":"1000.00",
"contribution_purpose_descrip":"",
"contributor_employer":"Twins Auto Mall",
"contributor_occupation":"Principal",
"donor_committee_fec_id":"",
"donor_committee_name":"",
"donor_candidate_fec_id":"",
"donor_candidate_last_name":"",
"donor_candidate_first_name":"",
"donor_candidate_middle_name":"",
"donor_candidate_prefix":"",
"donor_candidate_suffix":"",
"donor_candidate_office":"",
"donor_candidate_state":"",
"donor_candidate_district":"",
"conduit_name":"",
"conduit_street1":"",
"conduit_street2":"",
"conduit_city":"",
"conduit_state":"",
"conduit_zip":"",
"memo_code":"",
"memo_text_description":"",
"reference_code":""
}
],
"SchB":[
{
"form_type":"SB17",
"filer_committee_id_number":"C00654178",
"transaction_id":"500018114",
"back_reference_tran_id_number":"",
"back_reference_sched_name":"",
"entity_type":"ORG",
"payee_organization_name":"ActBlue Technical Services",
"payee_last_name":"",
"payee_first_name":"",
"payee_middle_name":"",
"payee_prefix":"",
"payee_suffix":"",
"payee_street_1":"366 Summer St",
"payee_street_2":"",
"payee_city":"Somerville",
"payee_state":"MA",
"payee_zip":"021443132",
"election_code":"P2018",
"election_other_description":"",
"expenditure_date":"20171107",
"expenditure_amount":"29.67",
"semi_annual_refunded_bundled_amt":"0.00",
"expenditure_purpose_descrip":"Credit Card Processing FEe",
"category_code":"",
"beneficiary_committee_fec_id":"",
"beneficiary_committee_name":"",
"beneficiary_candidate_fec_id":"",
"beneficiary_candidate_last_name":"",
"beneficiary_candidate_first_name":"",
"beneficiary_candidate_middle_name":"",
"beneficiary_candidate_prefix":"",
"beneficiary_candidate_suffix":"",
"beneficiary_candidate_office":"",
"beneficiary_candidate_state":"",
"beneficiary_candidate_district":"",
"conduit_name":"",
"conduit_street_1":"",
"conduit_street_2":"",
"conduit_city":"",
"conduit_state":"",
"conduit_zip":"",
"memo_code":"",
"memo_text_description":"",
"reference_to_si_or_sl_system_code_that_identifies_the_account":""
}
]
}
}