Skip to content

Instantly share code, notes, and snippets.

@bsweger
Created March 9, 2018 18:40
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 bsweger/dba26248bfcabc62f4ed3f6a98312fe9 to your computer and use it in GitHub Desktop.
Save bsweger/dba26248bfcabc62f4ed3f6a98312fe9 to your computer and use it in GitHub Desktop.
USASpending API Snippets
# Get SETI Institute grants from USAspending API into a pandas dataframe
import json
import requests
import pandas as pd
from pandas.io.json import json_normalize
uri = 'https://api.usaspending.gov/api/v2/search/spending_by_transaction/'
headers = {'content-type': 'application/json'}
seti_json = []
next = 1
while next:
payload = {
"filters":{"keyword":"\"SETI INSTITUTE\"",
"award_type_codes":["02","03","04","05"]}, # grants
"fields":[
"Award ID",
"Mod","Recipient Name",
"Action Date",
"Transaction Amount",
"Awarding Agency",
"Awarding Sub Agency",
"Award Type"],
"page":next,
"limit":100,
"sort":"Transaction Amount",
"order":"desc"}
r = requests.post(uri, data=json.dumps(payload), headers=headers)
seti_json.extend(r.json()['results'])
next = r.json()['page_metadata']['next']
seti_df = pd.DataFrame(json_normalize(seti_json))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment