Created
February 17, 2023 07:55
-
-
Save zhongleqi/dcbafa8ab615a34c16617014b3400b90 to your computer and use it in GitHub Desktop.
I hope this will be the last draft :(
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| 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