Skip to content

Instantly share code, notes, and snippets.

@zhongleqi
Created February 17, 2023 07:55
Show Gist options
  • Select an option

  • Save zhongleqi/dcbafa8ab615a34c16617014b3400b90 to your computer and use it in GitHub Desktop.

Select an option

Save zhongleqi/dcbafa8ab615a34c16617014b3400b90 to your computer and use it in GitHub Desktop.
I hope this will be the last draft :(
import os
import requests
import json
def main():
members = get_members_data()
parties = group_members_by_party(members)
dems = parties[0]
reps = parties[1]
#print(json.dumps(reps, indent=4))
dem_sorted = sort_members(dems)
rep_sorted = sort_members(reps)
print_dems = print_members(dem_sorted[0:5])
print_reps = print_members(rep_sorted[0:5])
final_print()
#print(dem_sorted[0:5])
#print(json.dumps(members, indent=4))
def get_members_data():
headers = {'X-API-Key': os.environ["PROPUBLICA_API_KEY"] }
url = "https://api.propublica.org/congress/v1/117/senate/members.json"
response = requests.get(url, headers=headers)
data = response.json()
return data ['results'][0]['members']
def group_members_by_party(members):
democrat = []
republican = []
for member in members:
if member['party'] == 'D':
democrat.append(member)
elif member['party'] == 'R':
republican.append(member)
return [democrat, republican]
def sort_members(mems):
mems = [democrat, republican] #why it can't define democrat and republican? I had already returned [democrat, republican]!!
for mem in mems:
sorted(mems, key=itemgetter('votes_against_party_pct'), reverse=True)
return mems
def print_members(): #I'm always confused, when should I put "names" in parentheses, and on which occasions I don't need to?
for mem in mems: #Do I need to define mems again? (like row 38)
print_members = "* {first} {last} ({state}) votes against the party {votes_pct} %of the time."
print(print_members.format(first = "first_name", last = "last_name", state = "state", votes_pct = "votes_against_party_pct"))
return
def final_print():
for mem in mems: #same question as above. my guess is that yes I need to define it (or say, call out what I returned?), but I don't know how...
print = "Senators most likely to break ranks:\nDemocrat\n--------\n{print_dems}\nRepublican\n----------\n{print_reps}"
print(print.formet(print_dems = [print_dems], print_reps = [print_reps]))
return
main()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment