Skip to content

Instantly share code, notes, and snippets.

@bradoyler
Last active May 28, 2016 02:10
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save bradoyler/72fab9272fe95ed5f0b049306eac6dad to your computer and use it in GitHub Desktop.
Save bradoyler/72fab9272fe95ed5f0b049306eac6dad to your computer and use it in GitHub Desktop.
Get state & county level Presidential Election results from AP (via Elex)
#!/bin/bash
### uses Elex, Jq & S3 to persist state & county level Presidential Election results (AP) to s3
# S3 url: MUST be set to your bucket and path.
S3_URL='http://s3.amazonaws.com/bucket-name/folder-name/$1_results.json'
# Get results and upload to S3
elex results $1 -o json \
| jq -c '[
.[] |
select(.officename == "President") |
{
id: .id,
raceid: .raceid,
officename: .officename,
officeid: .officeid,
racetype: .racetype,
racetypeid: .racetypeid, ## D,E,R,S
fipscode: .fipscode,
reportingunitname: .reportingunitname, ## ie. county name
precinctsreporting: .precinctsreporting,
precinctstotal: .precinctstotal,
statepostal: .statepostal,
candidateid: .candidateid,
first: .first,
last: .last,
party: .party,
votecount: .votecount,
votepct: .votepct,
winner: .winner,
level: .level,
test: .test,
lastupdated: .lastupdated
}
]' \
| gzip -vc \
| aws s3 cp - s3://$S3_URL \
--acl public-read \
--content-type=application/json \
--content-encoding gzip
# Check response headers
curl -I $S3_URL
# Get first entry of uploaded json
curl -s --compressed $S3_URL | jq '[.[]][0]'
@bradoyler
Copy link
Author

elections: [
{electionDate: "2012-03-13",liveResults: true},
{electionDate: "2012-11-06",liveResults: true},
{electionDate: "2015-05-19",liveResults: true},
{electionDate: "2015-06-02",liveResults: true},
{electionDate: "2015-06-09",liveResults: true},
{electionDate: "2015-07-07",liveResults: true},
{electionDate: "2015-08-04",liveResults: true},
{electionDate: "2015-08-25",liveResults: true},
{electionDate: "2015-09-10",liveResults: true},
{electionDate: "2015-10-24",liveResults: true},
{electionDate: "2015-11-03",liveResults: true},
{electionDate: "2015-11-21",liveResults: true},
{electionDate: "2016-02-01",liveResults: true},
{electionDate: "2016-02-09",liveResults: true},
{electionDate: "2016-02-16",liveResults: true},
{electionDate: "2016-02-20",liveResults: true},
{electionDate: "2016-02-23",liveResults: true},
{electionDate: "2016-02-27",liveResults: true},
{electionDate: "2016-03-01",liveResults: true},
{electionDate: "2016-03-05",liveResults: true},
{electionDate: "2016-03-06",liveResults: true},
{electionDate: "2016-03-08",liveResults: true},
{electionDate: "2016-03-12",liveResults: true},
{electionDate: "2016-03-15",liveResults: true},
{electionDate: "2016-03-22",liveResults: true},
{electionDate: "2016-03-26",liveResults: true},
{electionDate: "2016-04-05",liveResults: true},
{electionDate: "2016-04-09",liveResults: true},
{electionDate: "2016-04-19",liveResults: true},
{electionDate: "2016-04-26",liveResults: true},
{electionDate: "2016-05-03",liveResults: true},
{electionDate: "2016-05-10",liveResults: true},
{electionDate: "2016-05-17",liveResults: true},
{electionDate: "2016-05-24",liveResults: true},
{electionDate: "2016-06-07",testResults: true},
{electionDate: "2016-06-14", testResults: true}
]

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment