In-class example: talking to an API

This is a lightly edited version of the notebook that we worked through in class on 1/22/19.

In class, we went through how to make an API call end-to-end, to get a look at common tasks like figuring out documentation, using libraries, making HTTP requests, etc. Over the weekend, practice with this API and others (you might also try the one at opensecrets.org, see what you can learn programmatically about the world!

Here's a bit more information that we didn't get to in class. First, take a look at the documentation for the requests library again. Did we need to use the built-in Python json library to get at the data we received, or was there another way?

Second, as I mentioned in class, the Python Module of the Week website is a great way to get much more readable documentation than the official docs have.

Third, way at the bottom of this notebook (sorry for the length, by the way, there are some long data dumps that aren't going to display in the pretty box when we actually get it on the website), I used a weird syntax that you hadn't seen before. In order to search for a senator whose phone number wasn't in the dataset we got from openstates, I used the following code:

[x for x in senate if x["full_name"] == "Jeff Danielson"]

This is known as a list comprehension. Basically, it's a concise way of creating a list out of anything that you can loop over. In the code above, remember that senate was a variable pointing to a list of dictionaries, where each dictionary is information about a particular Iowa senator. The code above is equivalent to the loop:

output = []
for x in senate:
    if x["full_name"] == "Jeff Danielson":
        output.append(x)

Let's look at some more examples of list comprehensions to see how they work.

In [5]:
mylist = ["cat", "coyote", "dog"]

biganimals = [animal.upper() for animal in mylist]

print(biganimals)
['CAT', 'COYOTE', 'DOG']

That list comprehension was equivalent to

mylist = []
for animal in biganimals:
    mylist.append(animal.upper())
In [7]:
only_cs = [animal for animal in mylist if animal.startswith('c')]
print(only_cs)
['cat', 'coyote']

That shows that you can add a conditional to a listcomp by putting it at the very end. You can also create a listcomp out of anything else that you can loop over, such as a string. For example, here's a really pointless listcomp that works.

In [9]:
def iseven(num):
    return (num % 2 == 0) and (num != 0)

numberstring = "8675309"

print([num for num in numberstring if iseven(int(num))])
['8', '6']

List comprehensions are super useful to concisely create lists without loops. They can also be abused to create dense, unreadable code. For example, remember the FizzBuzz example we looked at last week (which comes from this famous blog post)? Well, here's one really pointless and stupid, but kind of cool looking, way to do it.

In [11]:
print('\n'.join(['Fizzbuzz' if x % 15 == 0 else 'Fizz' if x % 3 == 0 else 'Buzz' if x % 5 == 0 else str(x) for x in range(1, 101)]))
1
2
Fizz
4
Buzz
Fizz
7
8
Fizz
Buzz
11
Fizz
13
14
Fizzbuzz
16
17
Fizz
19
Buzz
Fizz
22
23
Fizz
Buzz
26
Fizz
28
29
Fizzbuzz
31
32
Fizz
34
Buzz
Fizz
37
38
Fizz
Buzz
41
Fizz
43
44
Fizzbuzz
46
47
Fizz
49
Buzz
Fizz
52
53
Fizz
Buzz
56
Fizz
58
59
Fizzbuzz
61
62
Fizz
64
Buzz
Fizz
67
68
Fizz
Buzz
71
Fizz
73
74
Fizzbuzz
76
77
Fizz
79
Buzz
Fizz
82
83
Fizz
Buzz
86
Fizz
88
89
Fizzbuzz
91
92
Fizz
94
Buzz
Fizz
97
98
Fizz
Buzz

You probably shouldn't write code like that, though. ANYWAY. here are two nice tutorials on list comprehensions for more one, two.

And with no further ado, here's the code (with my API key removed, use your own!) we used in class.

In [2]:
apikey = "SECRET" # note to students: publishing an API key on a public website is a bad idea.
# replace that value with the api key you got from opensecrets.org.
In [3]:
import requests
In [3]:
endpoint = "http://openstates.org/api/v1/legislators/?state=ia&chamber=upper&apikey=" + apikey
In [4]:
endpoint
Out[4]:
'http://openstates.org/api/v1/legislators/?state=ia&chamber=upper&apikey=SECRET'
In [10]:
r = requests.get(endpoint)
In [12]:
r
Out[12]:
<Response [200]>
In [14]:
r.headers
Out[14]:
{'Content-Length': '59002', 'Strict-Transport-Security': 'max-age=31536000', 'Expires': 'Tue, 22 Jan 2019 21:20:17 GMT', 'Vary': 'Origin', 'X-Cache-Status': 'MISS', 'Server': 'nginx/1.14.0 (Ubuntu)', 'Connection': 'keep-alive', 'Cache-Control': 'max-age=7200', 'Date': 'Tue, 22 Jan 2019 19:20:17 GMT', 'X-Frame-Options': 'SAMEORIGIN', 'Content-Type': 'application/json'}
In [15]:
r.text
Out[15]:
u'[{"id": "IAL000213", "leg_id": "IAL000213", "all_ids": ["IAL000213"], "full_name": "Mark Segebart", "first_name": "Mark", "last_name": "Segebart", "suffix": "", "photo_url": "https://www.legis.iowa.gov/photo?action=getPhoto&ga=2019-2020&pid=10727", "url": "https://www.legis.iowa.gov/legislators/legislator?ga=88&personID=10727", "email": "mark.segebart@legis.iowa.gov", "party": "Republican", "chamber": "upper", "district": "6", "state": "ia", "sources": [{"url": "https://www.legis.iowa.gov/legislators/legislator?ga=88&personID=10727"}], "active": true, "roles": [{"term": "2017-2018", "district": "6", "chamber": "upper", "state": "ia", "party": "Republican", "type": "member", "start_date": null, "end_date": null}], "offices": [{"name": "District Office", "fax": null, "phone": null, "email": null, "address": "1820 - 350th St, Vail, IA 51465", "type": "district"}, {"name": "Capitol Office", "fax": null, "phone": "515-281-3371", "email": "mark.segebart@legis.iowa.gov", "address": null, "type": "capitol"}], "old_roles": {}, "middle_name": "", "country": "us", "level": "state", "created_at": "2018-10-18 14:41:48", "updated_at": "2019-01-13 06:06:29"}, {"id": "IAL000039", "leg_id": "IAL000039", "all_ids": ["IAL000039", "IAL000209"], "full_name": "Amanda Ragan", "first_name": "Amanda", "last_name": "Ragan", "suffix": "", "photo_url": "https://www.legis.iowa.gov/photo?action=getPhoto&ga=2019-2020&pid=110", "url": "https://www.legis.iowa.gov/legislators/legislator?ga=88&personID=110", "email": "amanda.ragan@legis.iowa.gov", "party": "Democratic", "chamber": "upper", "district": "27", "state": "ia", "sources": [{"url": "https://www.legis.iowa.gov/legislators/legislator?ga=88&personID=110"}], "active": true, "roles": [{"term": "2017-2018", "district": "27", "chamber": "upper", "state": "ia", "party": "Democratic", "type": "member", "start_date": null, "end_date": null}], "offices": [{"name": "District Office", "fax": null, "phone": "641-424-0874", "email": null, "address": "361 S Pennsylvania Ave 1-D, Mason City, IA 50401", "type": "district"}, {"name": "Capitol Office", "fax": null, "phone": "515-281-3371", "email": "amanda.ragan@legis.iowa.gov", "address": null, "type": "capitol"}], "old_roles": {}, "middle_name": "", "country": "us", "level": "state", "created_at": "2018-10-18 14:41:49", "updated_at": "2019-01-13 06:06:23"}, {"id": "IAL000028", "leg_id": "IAL000028", "all_ids": ["IAL000028", "IAL000199", "IAL000481"], "full_name": "Robert Hogg", "first_name": "Robert", "last_name": "Hogg", "suffix": "", "photo_url": "https://www.legis.iowa.gov/photo?action=getPhoto&ga=2019-2020&pid=6257", "url": "https://www.legis.iowa.gov/legislators/legislator?ga=88&personID=6257", "email": "rob.hogg@legis.iowa.gov", "party": "Democratic", "chamber": "upper", "district": "33", "state": "ia", "sources": [{"url": "https://www.legis.iowa.gov/legislators/legislator?ga=88&personID=6257"}], "active": true, "roles": [{"term": "2017-2018", "district": "33", "chamber": "upper", "state": "ia", "party": "Democratic", "type": "member", "start_date": null, "end_date": null}], "offices": [{"name": "District Office", "fax": null, "phone": "319-247-0223", "email": null, "address": "PO Box 1361, Cedar Rapids, IA 52406", "type": "district"}, {"name": "Capitol Office", "fax": null, "phone": "515-281-3371", "email": "rob.hogg@legis.iowa.gov", "address": null, "type": "capitol"}], "old_roles": {}, "middle_name": "", "country": "us", "level": "state", "created_at": "2018-10-18 14:41:49", "updated_at": "2019-01-13 06:06:21"}, {"id": "IAL000234", "leg_id": "IAL000234", "all_ids": ["IAL000234", "IAL000514"], "full_name": "Mark Costello", "first_name": "Mark", "last_name": "Costello", "suffix": "", "photo_url": "https://www.legis.iowa.gov/photo?action=getPhoto&ga=2019-2020&pid=10749", "url": "https://www.legis.iowa.gov/legislators/legislator?ga=88&personID=10749", "email": "mark.costello@legis.iowa.gov", "party": "Republican", "chamber": "upper", "district": "12", "state": "ia", "sources": [{"url": "https://www.legis.iowa.gov/legislators/legislator?ga=88&personID=10749"}], "active": true, "roles": [{"term": "2017-2018", "district": "12", "chamber": "upper", "state": "ia", "party": "Republican", "type": "member", "start_date": null, "end_date": null}], "offices": [{"name": "District Office", "fax": null, "phone": null, "email": null, "address": "37265 Rains Ave, Imogene, IA 51645", "type": "district"}, {"name": "Capitol Office", "fax": null, "phone": "515-281-3371", "email": "mark.costello@legis.iowa.gov", "address": null, "type": "capitol"}], "old_roles": {}, "middle_name": "", "country": "us", "level": "state", "created_at": "2018-10-18 14:41:51", "updated_at": "2019-01-13 06:06:30"}, {"id": "IAL000533", "leg_id": "IAL000533", "all_ids": ["IAL000533"], "full_name": "Craig Johnson", "first_name": "Craig", "last_name": "Johnson", "suffix": "", "photo_url": "https://www.legis.iowa.gov/photo?action=getPhoto&ga=2019-2020&pid=18075", "url": "https://www.legis.iowa.gov/legislators/legislator?ga=88&personID=18075", "email": "craig.johnson@legis.iowa.gov", "party": "Republican", "chamber": "upper", "district": "32", "state": "ia", "sources": [{"url": "https://www.legis.iowa.gov/legislators/legislator?ga=88&personID=18075"}], "active": true, "roles": [{"term": "2017-2018", "district": "32", "chamber": "upper", "state": "ia", "party": "Republican", "type": "member", "start_date": null, "end_date": null}], "offices": [{"name": "District Office", "fax": null, "phone": "319-334-2413", "email": null, "address": "413 - 13th Ave NE, Independence, IA 50644", "type": "district"}, {"name": "Capitol Office", "fax": null, "phone": "515-281-3371", "email": "craig.johnson@legis.iowa.gov", "address": null, "type": "capitol"}], "old_roles": {}, "middle_name": "", "country": "us", "level": "state", "created_at": "2018-10-18 14:41:51", "updated_at": "2019-01-13 06:06:28"}, {"id": "IAL000186", "leg_id": "IAL000186", "all_ids": ["IAL000186"], "full_name": "Jake Chapman", "first_name": "Jake", "last_name": "Chapman", "suffix": "", "photo_url": "https://www.legis.iowa.gov/photo?action=getPhoto&ga=2019-2020&pid=10728", "url": "https://www.legis.iowa.gov/legislators/legislator?ga=88&personID=10728", "email": "jake.chapman@legis.iowa.gov", "party": "Republican", "chamber": "upper", "district": "10", "state": "ia", "sources": [{"url": "https://www.legis.iowa.gov/legislators/legislator?ga=88&personID=10728"}], "active": true, "roles": [{"term": "2017-2018", "district": "10", "chamber": "upper", "state": "ia", "party": "Republican", "type": "member", "start_date": null, "end_date": null}], "offices": [{"name": "District Office", "fax": null, "phone": null, "email": null, "address": "25862 Fox Ridge Ln, Adel, IA 50003", "type": "district"}, {"name": "Capitol Office", "fax": null, "phone": "515-281-3371", "email": "jake.chapman@legis.iowa.gov", "address": null, "type": "capitol"}], "old_roles": {}, "middle_name": "", "country": "us", "level": "state", "created_at": "2018-10-18 14:41:52", "updated_at": "2019-01-13 06:06:19"}, {"id": "IAL000070", "leg_id": "IAL000070", "all_ids": ["IAL000070", "IAL000246", "IAL000322", "IAL000329", "IAL000328", "IAL000479"], "full_name": "Julian B. Garrett", "first_name": "Julian B.", "last_name": "Garrett", "suffix": "", "photo_url": "https://www.legis.iowa.gov/photo?action=getPhoto&ga=2019-2020&pid=9404", "url": "https://www.legis.iowa.gov/legislators/legislator?ga=88&personID=9404", "email": "julian.garrett@legis.iowa.gov", "party": "Republican", "chamber": "upper", "district": "13", "state": "ia", "sources": [{"url": "https://www.legis.iowa.gov/legislators/legislator?ga=88&personID=9404"}], "active": true, "roles": [{"term": "2017-2018", "district": "13", "chamber": "upper", "state": "ia", "party": "Republican", "type": "member", "start_date": null, "end_date": null}], "offices": [{"name": "District Office", "fax": null, "phone": null, "email": null, "address": "Box 493, Indianola, IA 50125", "type": "district"}, {"name": "Capitol Office", "fax": null, "phone": "515-281-3371", "email": "julian.garrett@legis.iowa.gov", "address": null, "type": "capitol"}], "old_roles": {}, "middle_name": "", "country": "us", "level": "state", "created_at": "2018-10-18 14:41:52", "updated_at": "2019-01-13 06:06:28"}, {"id": "IAL000537", "leg_id": "IAL000537", "all_ids": ["IAL000537"], "full_name": "Nate Boulton", "first_name": "Nate", "last_name": "Boulton", "suffix": "", "photo_url": "https://www.legis.iowa.gov/photo?action=getPhoto&ga=2019-2020&pid=18073", "url": "https://www.legis.iowa.gov/legislators/legislator?ga=88&personID=18073", "email": "nate.boulton@legis.iowa.gov", "party": "Democratic", "chamber": "upper", "district": "16", "state": "ia", "sources": [{"url": "https://www.legis.iowa.gov/legislators/legislator?ga=88&personID=18073"}], "active": true, "roles": [{"term": "2017-2018", "district": "16", "chamber": "upper", "state": "ia", "party": "Democratic", "type": "member", "start_date": null, "end_date": null}], "offices": [{"name": "District Office", "fax": null, "phone": "515-265-1389", "email": null, "address": "2670 Wisconsin Ave, Des Moines, IA 50317", "type": "district"}, {"name": "Capitol Office", "fax": null, "phone": "515-281-3371", "email": "nate.boulton@legis.iowa.gov", "address": null, "type": "capitol"}], "old_roles": {}, "middle_name": "", "country": "us", "level": "state", "created_at": "2018-10-18 14:41:52", "updated_at": "2019-01-13 06:06:21"}, {"id": "IAL000185", "leg_id": "IAL000185", "all_ids": ["IAL000185"], "full_name": "Michael Breitbach", "first_name": "Michael", "last_name": "Breitbach", "suffix": "", "photo_url": "https://www.legis.iowa.gov/photo?action=getPhoto&ga=2019-2020&pid=10730", "url": "https://www.legis.iowa.gov/legislators/legislator?ga=88&personID=10730", "email": "michael.breitbach@legis.iowa.gov", "party": "Republican", "chamber": "upper", "district": "28", "state": "ia", "sources": [{"url": "https://www.legis.iowa.gov/legislators/legislator?ga=88&personID=10730"}], "active": true, "roles": [{"term": "2017-2018", "district": "28", "chamber": "upper", "state": "ia", "party": "Republican", "type": "member", "start_date": null, "end_date": null}], "offices": [{"name": "District Office", "fax": null, "phone": "563-933-6486", "email": null, "address": "301 W Mission St, Strawberry Point, IA 52076", "type": "district"}, {"name": "Capitol Office", "fax": null, "phone": "515-281-3371", "email": "michael.breitbach@legis.iowa.gov", "address": null, "type": "capitol"}], "old_roles": {}, "middle_name": "", "country": "us", "level": "state", "created_at": "2018-10-18 14:41:53", "updated_at": "2019-01-13 06:06:29"}, {"id": "IAL000528", "leg_id": "IAL000528", "all_ids": ["IAL000528"], "full_name": "Dan Dawson", "first_name": "Dan", "last_name": "Dawson", "suffix": "", "photo_url": "https://www.legis.iowa.gov/photo?action=getPhoto&ga=2019-2020&pid=18072", "url": "https://www.legis.iowa.gov/legislators/legislator?ga=88&personID=18072", "email": "dan.dawson@legis.iowa.gov", "party": "Republican", "chamber": "upper", "district": "8", "state": "ia", "sources": [{"url": "https://www.legis.iowa.gov/legislators/legislator?ga=88&personID=18072"}], "active": true, "roles": [{"term": "2017-2018", "district": "8", "chamber": "upper", "state": "ia", "party": "Republican", "type": "member", "start_date": null, "end_date": null}], "offices": [{"name": "District Office", "fax": null, "phone": "712-256-1199", "email": null, "address": "213 Upland Dr, Council Bluffs, IA 51503", "type": "district"}, {"name": "Capitol Office", "fax": null, "phone": "515-281-3371", "email": "dan.dawson@legis.iowa.gov", "address": null, "type": "capitol"}], "old_roles": {}, "middle_name": "", "country": "us", "level": "state", "created_at": "2018-10-18 14:41:53", "updated_at": "2019-01-13 06:06:30"}, {"id": "IAL000540", "leg_id": "IAL000540", "all_ids": ["IAL000540"], "full_name": "Thomas A. Greene", "first_name": "Thomas A.", "last_name": "Greene", "suffix": "", "photo_url": "https://www.legis.iowa.gov/photo?action=getPhoto&ga=2019-2020&pid=18077", "url": "https://www.legis.iowa.gov/legislators/legislator?ga=88&personID=18077", "email": "tom.greene@legis.iowa.gov", "party": "Republican", "chamber": "upper", "district": "44", "state": "ia", "sources": [{"url": "https://www.legis.iowa.gov/legislators/legislator?ga=88&personID=18077"}], "active": true, "roles": [{"term": "2017-2018", "district": "44", "chamber": "upper", "state": "ia", "party": "Republican", "type": "member", "start_date": null, "end_date": null}], "offices": [{"name": "District Office", "fax": null, "phone": "319-750-6579", "email": null, "address": "5763 Hartman Rd, Burlington, IA 52601", "type": "district"}, {"name": "Capitol Office", "fax": null, "phone": "515-281-3371", "email": "tom.greene@legis.iowa.gov", "address": null, "type": "capitol"}], "old_roles": {}, "middle_name": "", "country": "us", "level": "state", "created_at": "2018-10-18 14:41:54", "updated_at": "2019-01-13 06:06:21"}, {"id": "IAL000031", "leg_id": "IAL000031", "all_ids": ["IAL000031", "IAL000202"], "full_name": "Pam Jochum", "first_name": "Pam", "last_name": "Jochum", "suffix": "", "photo_url": "https://www.legis.iowa.gov/photo?action=getPhoto&ga=2019-2020&pid=35", "url": "https://www.legis.iowa.gov/legislators/legislator?ga=88&personID=35", "email": "pam.jochum@legis.iowa.gov", "party": "Democratic", "chamber": "upper", "district": "50", "state": "ia", "sources": [{"url": "https://www.legis.iowa.gov/legislators/legislator?ga=88&personID=35"}], "active": true, "roles": [{"term": "2017-2018", "district": "50", "chamber": "upper", "state": "ia", "party": "Democratic", "type": "member", "start_date": null, "end_date": null}], "offices": [{"name": "District Office", "fax": null, "phone": "563-556-6530", "email": null, "address": "2368 Jackson St, Dubuque, IA 52001", "type": "district"}, {"name": "Capitol Office", "fax": null, "phone": "515-281-3371", "email": "pam.jochum@legis.iowa.gov", "address": null, "type": "capitol"}], "old_roles": {}, "middle_name": "", "country": "us", "level": "state", "created_at": "2018-10-18 14:41:54", "updated_at": "2019-01-13 06:06:30"}, {"id": "IAL000009", "leg_id": "IAL000009", "all_ids": ["IAL000009", "IAL000182"], "full_name": "Joe Bolkcom", "first_name": "Joe", "last_name": "Bolkcom", "suffix": "", "photo_url": "https://www.legis.iowa.gov/photo?action=getPhoto&ga=2019-2020&pid=123", "url": "https://www.legis.iowa.gov/legislators/legislator?ga=88&personID=123", "email": "joe.bolkcom@legis.iowa.gov", "party": "Democratic", "chamber": "upper", "district": "43", "state": "ia", "sources": [{"url": "https://www.legis.iowa.gov/legislators/legislator?ga=88&personID=123"}], "active": true, "roles": [{"term": "2017-2018", "district": "43", "chamber": "upper", "state": "ia", "party": "Democratic", "type": "member", "start_date": null, "end_date": null}], "offices": [{"name": "District Office", "fax": null, "phone": "319-337-6280", "email": null, "address": "1235 Oakes Dr, Iowa City, IA 52245", "type": "district"}, {"name": "Capitol Office", "fax": null, "phone": "515-281-3371", "email": "joe.bolkcom@legis.iowa.gov", "address": null, "type": "capitol"}], "old_roles": {}, "middle_name": "", "country": "us", "level": "state", "created_at": "2018-10-18 14:41:54", "updated_at": "2019-01-13 06:06:19"}, {"id": "IAL000151", "leg_id": "IAL000151", "all_ids": ["IAL000151", "IAL000158", "IAL000170", "IAL000205"], "full_name": "Liz Mathis", "first_name": "Liz", "last_name": "Mathis", "suffix": "", "photo_url": "https://www.legis.iowa.gov/photo?action=getPhoto&ga=2019-2020&pid=10318", "url": "https://www.legis.iowa.gov/legislators/legislator?ga=88&personID=10318", "email": "liz.mathis@legis.iowa.gov", "party": "Democratic", "chamber": "upper", "district": "34", "state": "ia", "sources": [{"url": "https://www.legis.iowa.gov/legislators/legislator?ga=88&personID=10318"}], "active": true, "roles": [{"term": "2017-2018", "district": "34", "chamber": "upper", "state": "ia", "party": "Democratic", "type": "member", "start_date": null, "end_date": null}], "offices": [{"name": "District Office", "fax": null, "phone": "319-361-1725", "email": null, "address": "320 S Blairsferry Crossing, Hiawatha, IA 52233", "type": "district"}, {"name": "Capitol Office", "fax": null, "phone": "515-281-3371", "email": "liz.mathis@legis.iowa.gov", "address": null, "type": "capitol"}], "old_roles": {}, "middle_name": "", "country": "us", "level": "state", "created_at": "2018-10-18 14:41:55", "updated_at": "2019-01-13 06:06:22"}, {"id": "IAL000014", "leg_id": "IAL000014", "all_ids": ["IAL000014", "IAL000188"], "full_name": "Jeff Danielson", "first_name": "Jeff", "last_name": "Danielson", "suffix": "", "photo_url": "https://www.legis.iowa.gov/photo?action=getPhoto&ga=2019-2020&pid=785", "url": "https://www.legis.iowa.gov/legislators/legislator?ga=88&personID=785", "email": "jeffdanielson@gmail.com", "party": "Democratic", "chamber": "upper", "district": "30", "state": "ia", "sources": [{"url": "https://www.legis.iowa.gov/legislators/legislator?ga=88&personID=785"}], "active": true, "roles": [{"term": "2017-2018", "district": "30", "chamber": "upper", "state": "ia", "party": "Democratic", "type": "member", "start_date": null, "end_date": null}], "offices": [{"name": "District Office", "fax": null, "phone": null, "email": null, "address": "PO Box 1191, Cedar Falls, IA 50613", "type": "district"}, {"name": "Capitol Office", "fax": null, "phone": "515-281-3371", "email": "jeffdanielson@gmail.com", "address": null, "type": "capitol"}], "old_roles": {}, "middle_name": "", "country": "us", "level": "state", "created_at": "2018-10-18 14:41:56", "updated_at": "2019-01-13 06:06:27"}, {"id": "IAL000050", "leg_id": "IAL000050", "all_ids": ["IAL000050", "IAL000222"], "full_name": "Brad Zaun", "first_name": "Brad", "last_name": "Zaun", "suffix": "", "photo_url": "https://www.legis.iowa.gov/photo?action=getPhoto&ga=2019-2020&pid=788", "url": "https://www.legis.iowa.gov/legislators/legislator?ga=88&personID=788", "email": "brad.zaun@legis.iowa.gov", "party": "Republican", "chamber": "upper", "district": "20", "state": "ia", "sources": [{"url": "https://www.legis.iowa.gov/legislators/legislator?ga=88&personID=788"}], "active": true, "roles": [{"term": "2017-2018", "district": "20", "chamber": "upper", "state": "ia", "party": "Republican", "type": "member", "start_date": null, "end_date": null}], "offices": [{"name": "District Office", "fax": null, "phone": "515-276-2025", "email": null, "address": "7032 Holcomb Ave, Urbandale, IA 50322", "type": "district"}, {"name": "Capitol Office", "fax": null, "phone": "515-281-3371", "email": "brad.zaun@legis.iowa.gov", "address": null, "type": "capitol"}], "old_roles": {}, "middle_name": "", "country": "us", "level": "state", "created_at": "2018-10-18 14:41:56", "updated_at": "2019-01-13 06:06:23"}, {"id": "IAL000223", "leg_id": "IAL000223", "all_ids": ["IAL000223"], "full_name": "Dan Zumbach", "first_name": "Dan", "last_name": "Zumbach", "suffix": "", "photo_url": "https://www.legis.iowa.gov/photo?action=getPhoto&ga=2019-2020&pid=10733", "url": "https://www.legis.iowa.gov/legislators/legislator?ga=88&personID=10733", "email": "dan.zumbach@legis.iowa.gov", "party": "Republican", "chamber": "upper", "district": "48", "state": "ia", "sources": [{"url": "https://www.legis.iowa.gov/legislators/legislator?ga=88&personID=10733"}], "active": true, "roles": [{"term": "2017-2018", "district": "48", "chamber": "upper", "state": "ia", "party": "Republican", "type": "member", "start_date": null, "end_date": null}], "offices": [{"name": "District Office", "fax": null, "phone": null, "email": null, "address": "2618 - 140th Ave, Ryan, IA 52330", "type": "district"}, {"name": "Capitol Office", "fax": null, "phone": "515-281-3371", "email": "dan.zumbach@legis.iowa.gov", "address": null, "type": "capitol"}], "old_roles": {}, "middle_name": "", "country": "us", "level": "state", "created_at": "2018-10-18 14:41:57", "updated_at": "2019-01-13 06:06:23"}, {"id": "IAL000044", "leg_id": "IAL000044", "all_ids": ["IAL000044", "IAL000216"], "full_name": "Roby Smith", "first_name": "Roby", "last_name": "Smith", "suffix": "", "photo_url": "https://www.legis.iowa.gov/photo?action=getPhoto&ga=2019-2020&pid=9386", "url": "https://www.legis.iowa.gov/legislators/legislator?ga=88&personID=9386", "email": "roby.smith@legis.iowa.gov", "party": "Republican", "chamber": "upper", "district": "47", "state": "ia", "sources": [{"url": "https://www.legis.iowa.gov/legislators/legislator?ga=88&personID=9386"}], "active": true, "roles": [{"term": "2017-2018", "district": "47", "chamber": "upper", "state": "ia", "party": "Republican", "type": "member", "start_date": null, "end_date": null}], "offices": [{"name": "District Office", "fax": null, "phone": "563-386-0179", "email": null, "address": "2036 E 48th St, Davenport, IA 52807", "type": "district"}, {"name": "Capitol Office", "fax": null, "phone": "515-281-3371", "email": "roby.smith@legis.iowa.gov", "address": null, "type": "capitol"}], "old_roles": {}, "middle_name": "", "country": "us", "level": "state", "created_at": "2018-10-18 14:41:59", "updated_at": "2019-01-13 06:06:24"}, {"id": "IAL000134", "leg_id": "IAL000134", "all_ids": ["IAL000134", "IAL000309"], "full_name": "Todd E. Taylor", "first_name": "Todd", "last_name": "Taylor", "suffix": "", "photo_url": "https://www.legis.iowa.gov/photo?action=getPhoto&ga=2019-2020&pid=54", "url": "https://www.legis.iowa.gov/legislators/legislator?ga=88&personID=54", "email": "todd.taylor@legis.iowa.gov", "party": "Democratic", "chamber": "upper", "district": "35", "state": "ia", "sources": [{"url": "https://www.legis.iowa.gov/legislators/legislator?ga=88&personID=54"}], "active": true, "roles": [{"term": "2017-2018", "district": "35", "chamber": "upper", "state": "ia", "party": "Democratic", "type": "member", "start_date": null, "end_date": null}], "offices": [{"name": "District Office", "fax": null, "phone": null, "email": null, "address": "1416 A Ave NW, Cedar Rapids, IA 52405", "type": "district"}, {"name": "Capitol Office", "fax": null, "phone": "515-281-3371", "email": "todd.taylor@legis.iowa.gov", "address": null, "type": "capitol"}], "old_roles": {}, "middle_name": "", "country": "us", "level": "state", "created_at": "2018-10-18 14:41:59", "updated_at": "2019-01-13 06:06:19"}, {"id": "IAL000535", "leg_id": "IAL000535", "all_ids": ["IAL000535"], "full_name": "Jeff Edler", "first_name": "Jeff", "last_name": "Edler", "suffix": "", "photo_url": "https://www.legis.iowa.gov/photo?action=getPhoto&ga=2019-2020&pid=18076", "url": "https://www.legis.iowa.gov/legislators/legislator?ga=88&personID=18076", "email": "jeff.edler@legis.iowa.gov", "party": "Republican", "chamber": "upper", "district": "36", "state": "ia", "sources": [{"url": "https://www.legis.iowa.gov/legislators/legislator?ga=88&personID=18076"}], "active": true, "roles": [{"term": "2017-2018", "district": "36", "chamber": "upper", "state": "ia", "party": "Republican", "type": "member", "start_date": null, "end_date": null}], "offices": [{"name": "District Office", "fax": null, "phone": null, "email": null, "address": "1554 - 200th St, State Center, IA 50247", "type": "district"}, {"name": "Capitol Office", "fax": null, "phone": "515-281-3371", "email": "jeff.edler@legis.iowa.gov", "address": null, "type": "capitol"}], "old_roles": {}, "middle_name": "", "country": "us", "level": "state", "created_at": "2018-10-18 14:41:59", "updated_at": "2019-01-13 06:06:20"}, {"id": "IAL000038", "leg_id": "IAL000038", "all_ids": ["IAL000038", "IAL000208", "IAL000484"], "full_name": "Herman C. Quirmbach", "first_name": "Herman", "last_name": "Quirmbach", "suffix": "", "photo_url": "https://www.legis.iowa.gov/photo?action=getPhoto&ga=2019-2020&pid=161", "url": "https://www.legis.iowa.gov/legislators/legislator?ga=88&personID=161", "email": "herman.quirmbach@legis.iowa.gov", "party": "Democratic", "chamber": "upper", "district": "23", "state": "ia", "sources": [{"url": "https://www.legis.iowa.gov/legislators/legislator?ga=88&personID=161"}], "active": true, "roles": [{"term": "2017-2018", "district": "23", "chamber": "upper", "state": "ia", "party": "Democratic", "type": "member", "start_date": null, "end_date": null}], "offices": [{"name": "District Office", "fax": null, "phone": "515-292-8984", "email": null, "address": "1002 Jarrett Circle, Ames, IA 50014", "type": "district"}, {"name": "Capitol Office", "fax": null, "phone": "515-281-3371", "email": "herman.quirmbach@legis.iowa.gov", "address": null, "type": "capitol"}], "old_roles": {}, "middle_name": "", "country": "us", "level": "state", "created_at": "2018-10-18 14:42:00", "updated_at": "2019-01-13 06:06:25"}, {"id": "IAL000005", "leg_id": "IAL000005", "all_ids": ["IAL000005"], "full_name": "Jerry Behn", "first_name": "Jerry", "last_name": "Behn", "suffix": "", "photo_url": "https://www.legis.iowa.gov/photo?action=getPhoto&ga=2019-2020&pid=140", "url": "https://www.legis.iowa.gov/legislators/legislator?ga=88&personID=140", "email": "jerry.behn@legis.iowa.gov", "party": "Republican", "chamber": "upper", "district": "24", "state": "ia", "sources": [{"url": "https://www.legis.iowa.gov/legislators/legislator?ga=88&personID=140"}], "active": true, "roles": [{"term": "2017-2018", "district": "24", "chamber": "upper", "state": "ia", "party": "Republican", "type": "member", "start_date": null, "end_date": null}], "offices": [{"name": "District Office", "fax": null, "phone": "515-432-7327", "email": null, "address": "1313 Quill Ave, Boone, IA 50036", "type": "district"}, {"name": "Capitol Office", "fax": null, "phone": "515-281-3371", "email": "jerry.behn@legis.iowa.gov", "address": null, "type": "capitol"}], "old_roles": {}, "middle_name": "", "country": "us", "level": "state", "created_at": "2018-10-18 14:42:00", "updated_at": "2019-01-13 06:06:21"}, {"id": "IAL000499", "leg_id": "IAL000499", "all_ids": ["IAL000499"], "full_name": "Tim Kraayenbrink", "first_name": "Tim", "last_name": "Kraayenbrink", "suffix": "", "photo_url": "https://www.legis.iowa.gov/photo?action=getPhoto&ga=2019-2020&pid=14812", "url": "https://www.legis.iowa.gov/legislators/legislator?ga=88&personID=14812", "email": "tim.kraayenbrink@legis.iowa.gov", "party": "Republican", "chamber": "upper", "district": "5", "state": "ia", "sources": [{"url": "https://www.legis.iowa.gov/legislators/legislator?ga=88&personID=14812"}], "active": true, "roles": [{"term": "2017-2018", "district": "5", "chamber": "upper", "state": "ia", "party": "Republican", "type": "member", "start_date": null, "end_date": null}], "offices": [{"name": "District Office", "fax": null, "phone": "515-576-0417", "email": null, "address": "1561 National Ave, Fort Dodge, IA 50501", "type": "district"}, {"name": "Capitol Office", "fax": null, "phone": "515-281-3371", "email": "tim.kraayenbrink@legis.iowa.gov", "address": null, "type": "capitol"}], "old_roles": {}, "middle_name": "", "country": "us", "level": "state", "created_at": "2018-10-18 14:42:00", "updated_at": "2019-01-13 06:06:21"}, {"id": "IAL000530", "leg_id": "IAL000530", "all_ids": ["IAL000530"], "full_name": "Jim Lykam", "first_name": "Jim", "last_name": "Lykam", "suffix": "", "photo_url": "https://www.legis.iowa.gov/photo?action=getPhoto&ga=2019-2020&pid=246", "url": "https://www.legis.iowa.gov/legislators/legislator?ga=88&personID=246", "email": "jim.lykam@legis.iowa.gov", "party": "Democratic", "chamber": "upper", "district": "45", "state": "ia", "sources": [{"url": "https://www.legis.iowa.gov/legislators/legislator?ga=88&personID=246"}], "active": true, "roles": [{"term": "2017-2018", "district": "45", "chamber": "upper", "state": "ia", "party": "Democratic", "type": "member", "start_date": null, "end_date": null}], "offices": [{"name": "District Office", "fax": null, "phone": "563-391-1919", "email": null, "address": "2906 W 35th St, Davenport, IA 52806", "type": "district"}, {"name": "Capitol Office", "fax": null, "phone": "515-281-3371", "email": "jim.lykam@legis.iowa.gov", "address": null, "type": "capitol"}], "old_roles": {}, "middle_name": "", "country": "us", "level": "state", "created_at": "2018-10-18 14:42:01", "updated_at": "2019-01-13 06:06:28"}, {"id": "IAL000033", "leg_id": "IAL000033", "all_ids": ["IAL000033", "IAL000204"], "full_name": "Tim L. Kapucian", "first_name": "Tim", "last_name": "Kapucian", "suffix": "", "photo_url": "https://www.legis.iowa.gov/photo?action=getPhoto&ga=2019-2020&pid=6567", "url": "https://www.legis.iowa.gov/legislators/legislator?ga=88&personID=6567", "email": "tim.kapucian@legis.iowa.gov", "party": "Republican", "chamber": "upper", "district": "38", "state": "ia", "sources": [{"url": "https://www.legis.iowa.gov/legislators/legislator?ga=88&personID=6567"}], "active": true, "roles": [{"term": "2017-2018", "district": "38", "chamber": "upper", "state": "ia", "party": "Republican", "type": "member", "start_date": null, "end_date": null}], "offices": [{"name": "District Office", "fax": null, "phone": null, "email": null, "address": "1275 - 69th St, Keystone, IA 52249", "type": "district"}, {"name": "Capitol Office", "fax": null, "phone": "515-281-3371", "email": "tim.kapucian@legis.iowa.gov", "address": null, "type": "capitol"}], "old_roles": {}, "middle_name": "", "country": "us", "level": "state", "created_at": "2018-10-18 14:42:04", "updated_at": "2019-01-13 06:06:28"}, {"id": "IAL000115", "leg_id": "IAL000115", "all_ids": ["IAL000115", "IAL000207"], "full_name": "Janet Petersen", "first_name": "Janet", "last_name": "Petersen", "suffix": "", "photo_url": "https://www.legis.iowa.gov/photo?action=getPhoto&ga=2019-2020&pid=72", "url": "https://www.legis.iowa.gov/legislators/legislator?ga=88&personID=72", "email": "janet.petersen@legis.iowa.gov", "party": "Democratic", "chamber": "upper", "district": "18", "state": "ia", "sources": [{"url": "https://www.legis.iowa.gov/legislators/legislator?ga=88&personID=72"}], "active": true, "roles": [{"term": "2017-2018", "district": "18", "chamber": "upper", "state": "ia", "party": "Democratic", "type": "member", "start_date": null, "end_date": null}], "offices": [{"name": "District Office", "fax": null, "phone": null, "email": null, "address": "4300 Beaver Hills Dr, Des Moines, IA 50310", "type": "district"}, {"name": "Capitol Office", "fax": null, "phone": "515-281-3371", "email": "janet.petersen@legis.iowa.gov", "address": null, "type": "capitol"}], "old_roles": {}, "middle_name": "", "country": "us", "level": "state", "created_at": "2018-10-18 14:42:05", "updated_at": "2019-01-13 06:06:21"}, {"id": "IAL000125", "leg_id": "IAL000125", "all_ids": ["IAL000125", "IAL000298", "IAL000497"], "full_name": "Jason Schultz", "first_name": "Jason", "last_name": "Schultz", "suffix": "", "photo_url": "https://www.legis.iowa.gov/photo?action=getPhoto&ga=2019-2020&pid=6588", "url": "https://www.legis.iowa.gov/legislators/legislator?ga=88&personID=6588", "email": "jason.schultz@legis.iowa.gov", "party": "Republican", "chamber": "upper", "district": "9", "state": "ia", "sources": [{"url": "https://www.legis.iowa.gov/legislators/legislator?ga=88&personID=6588"}], "active": true, "roles": [{"term": "2017-2018", "district": "9", "chamber": "upper", "state": "ia", "party": "Republican", "type": "member", "start_date": null, "end_date": null}], "offices": [{"name": "District Office", "fax": null, "phone": null, "email": null, "address": "611 Cedar St, PO Box 70, Schleswig, IA 51461", "type": "district"}, {"name": "Capitol Office", "fax": null, "phone": "515-281-3371", "email": "jason.schultz@legis.iowa.gov", "address": null, "type": "capitol"}], "old_roles": {}, "middle_name": "", "country": "us", "level": "state", "created_at": "2018-10-18 14:42:06", "updated_at": "2019-01-13 06:06:25"}, {"id": "IAL000219", "leg_id": "IAL000219", "all_ids": ["IAL000219"], "full_name": "Rich Taylor", "first_name": "Rich", "last_name": "Taylor", "suffix": "", "photo_url": "https://www.legis.iowa.gov/photo?action=getPhoto&ga=2019-2020&pid=10735", "url": "https://www.legis.iowa.gov/legislators/legislator?ga=88&personID=10735", "email": "rich.taylor@legis.iowa.gov", "party": "Democratic", "chamber": "upper", "district": "42", "state": "ia", "sources": [{"url": "https://www.legis.iowa.gov/legislators/legislator?ga=88&personID=10735"}], "active": true, "roles": [{"term": "2017-2018", "district": "42", "chamber": "upper", "state": "ia", "party": "Democratic", "type": "member", "start_date": null, "end_date": null}], "offices": [{"name": "District Office", "fax": null, "phone": null, "email": null, "address": "2667 Iowa Ave, Mt Pleasant, IA 52641", "type": "district"}, {"name": "Capitol Office", "fax": null, "phone": "515-281-3371", "email": "rich.taylor@legis.iowa.gov", "address": null, "type": "capitol"}], "old_roles": {}, "middle_name": "", "country": "us", "level": "state", "created_at": "2018-10-18 14:42:07", "updated_at": "2019-01-13 06:06:22"}, {"id": "IAL000544", "leg_id": "IAL000544", "all_ids": ["IAL000544"], "full_name": "Waylon Brown", "first_name": "Waylon", "last_name": "Brown", "suffix": "", "photo_url": "https://www.legis.iowa.gov/photo?action=getPhoto&ga=2019-2020&pid=18074", "url": "https://www.legis.iowa.gov/legislators/legislator?ga=88&personID=18074", "email": "waylon.brown@legis.iowa.gov", "party": "Republican", "chamber": "upper", "district": "26", "state": "ia", "sources": [{"url": "https://www.legis.iowa.gov/legislators/legislator?ga=88&personID=18074"}], "active": true, "roles": [{"term": "2017-2018", "district": "26", "chamber": "upper", "state": "ia", "party": "Republican", "type": "member", "start_date": null, "end_date": null}], "offices": [{"name": "District Office", "fax": null, "phone": null, "email": null, "address": "109 S Summer St, St Ansgar, IA 50472", "type": "district"}, {"name": "Capitol Office", "fax": null, "phone": "515-281-3371", "email": "waylon.brown@legis.iowa.gov", "address": null, "type": "capitol"}], "old_roles": {}, "middle_name": "", "country": "us", "level": "state", "created_at": "2018-10-18 14:42:08", "updated_at": "2019-01-13 06:06:19"}, {"id": "IAL000503", "leg_id": "IAL000503", "all_ids": ["IAL000503"], "full_name": "Kevin Kinney", "first_name": "Kevin", "last_name": "Kinney", "suffix": "", "photo_url": "https://www.legis.iowa.gov/photo?action=getPhoto&ga=2019-2020&pid=14817", "url": "https://www.legis.iowa.gov/legislators/legislator?ga=88&personID=14817", "email": "kevin.kinney@legis.iowa.gov", "party": "Democratic", "chamber": "upper", "district": "39", "state": "ia", "sources": [{"url": "https://www.legis.iowa.gov/legislators/legislator?ga=88&personID=14817"}], "active": true, "roles": [{"term": "2017-2018", "district": "39", "chamber": "upper", "state": "ia", "party": "Democratic", "type": "member", "start_date": null, "end_date": null}], "offices": [{"name": "District Office", "fax": null, "phone": "319-631-4667", "email": null, "address": "4321 Calkins Ave SW, Oxford, IA 52322", "type": "district"}, {"name": "Capitol Office", "fax": null, "phone": "515-281-3371", "email": "kevin.kinney@legis.iowa.gov", "address": null, "type": "capitol"}], "old_roles": {}, "middle_name": "", "country": "us", "level": "state", "created_at": "2018-10-18 14:42:08", "updated_at": "2019-01-13 06:06:30"}, {"id": "IAL000215", "leg_id": "IAL000215", "all_ids": ["IAL000215"], "full_name": "Amy Sinclair", "first_name": "Amy", "last_name": "Sinclair", "suffix": "", "photo_url": "https://www.legis.iowa.gov/photo?action=getPhoto&ga=2019-2020&pid=10729", "url": "https://www.legis.iowa.gov/legislators/legislator?ga=88&personID=10729", "email": "amy.sinclair@legis.iowa.gov", "party": "Republican", "chamber": "upper", "district": "14", "state": "ia", "sources": [{"url": "https://www.legis.iowa.gov/legislators/legislator?ga=88&personID=10729"}], "active": true, "roles": [{"term": "2017-2018", "district": "14", "chamber": "upper", "state": "ia", "party": "Republican", "type": "member", "start_date": null, "end_date": null}], "offices": [{"name": "District Office", "fax": null, "phone": null, "email": null, "address": "1255 King Rd, Allerton, IA 50008", "type": "district"}, {"name": "Capitol Office", "fax": null, "phone": "515-281-3371", "email": "amy.sinclair@legis.iowa.gov", "address": null, "type": "capitol"}], "old_roles": {}, "middle_name": "", "country": "us", "level": "state", "created_at": "2018-10-18 14:42:09", "updated_at": "2019-01-13 06:06:26"}, {"id": "IAL000020", "leg_id": "IAL000020", "all_ids": ["IAL000020"], "full_name": "Randy Feenstra", "first_name": "Randy", "last_name": "Feenstra", "suffix": "", "photo_url": "https://www.legis.iowa.gov/photo?action=getPhoto&ga=2019-2020&pid=6565", "url": "https://www.legis.iowa.gov/legislators/legislator?ga=88&personID=6565", "email": "randy.feenstra@legis.iowa.gov", "party": "Republican", "chamber": "upper", "district": "2", "state": "ia", "sources": [{"url": "https://www.legis.iowa.gov/legislators/legislator?ga=88&personID=6565"}], "active": true, "roles": [{"term": "2017-2018", "district": "2", "chamber": "upper", "state": "ia", "party": "Republican", "type": "member", "start_date": null, "end_date": null}], "offices": [{"name": "District Office", "fax": null, "phone": "712-439-1244", "email": null, "address": "641 Second St, Hull, IA 51239", "type": "district"}, {"name": "Capitol Office", "fax": null, "phone": "515-281-3371", "email": "randy.feenstra@legis.iowa.gov", "address": null, "type": "capitol"}], "old_roles": {}, "middle_name": "", "country": "us", "level": "state", "created_at": "2018-10-18 14:42:11", "updated_at": "2019-01-13 06:06:22"}, {"id": "IAL000515", "leg_id": "IAL000515", "all_ids": ["IAL000515"], "full_name": "Tom Shipley", "first_name": "Tom", "last_name": "Shipley", "suffix": "", "photo_url": "https://www.legis.iowa.gov/photo?action=getPhoto&ga=2019-2020&pid=14814", "url": "https://www.legis.iowa.gov/legislators/legislator?ga=88&personID=14814", "email": "tom.shipley@legis.iowa.gov", "party": "Republican", "chamber": "upper", "district": "11", "state": "ia", "sources": [{"url": "https://www.legis.iowa.gov/legislators/legislator?ga=88&personID=14814"}], "active": true, "roles": [{"term": "2017-2018", "district": "11", "chamber": "upper", "state": "ia", "party": "Republican", "type": "member", "start_date": null, "end_date": null}], "offices": [{"name": "District Office", "fax": null, "phone": "712-785-3583", "email": null, "address": "2425 Birch Ave, Nodaway, IA 50857", "type": "district"}, {"name": "Capitol Office", "fax": null, "phone": "515-281-3371", "email": "tom.shipley@legis.iowa.gov", "address": null, "type": "capitol"}], "old_roles": {}, "middle_name": "", "country": "us", "level": "state", "created_at": "2018-10-18 14:42:11", "updated_at": "2019-01-13 06:06:24"}, {"id": "IAL000509", "leg_id": "IAL000509", "all_ids": ["IAL000509"], "full_name": "Zach Nunn", "first_name": "Zach", "last_name": "Nunn", "suffix": "", "photo_url": "https://www.legis.iowa.gov/photo?action=getPhoto&ga=2019-2020&pid=14803", "url": "https://www.legis.iowa.gov/legislators/legislator?ga=88&personID=14803", "email": "zach.nunn@legis.iowa.gov", "party": "Republican", "chamber": "upper", "district": "15", "state": "ia", "sources": [{"url": "https://www.legis.iowa.gov/legislators/legislator?ga=88&personID=14803"}], "active": true, "roles": [{"term": "2017-2018", "district": "15", "chamber": "upper", "state": "ia", "party": "Republican", "type": "member", "start_date": null, "end_date": null}], "offices": [{"name": "District Office", "fax": null, "phone": null, "email": null, "address": "PO Box 105, Altoona, IA 50009", "type": "district"}, {"name": "Capitol Office", "fax": null, "phone": "515-281-3371", "email": "zach.nunn@legis.iowa.gov", "address": null, "type": "capitol"}], "old_roles": {}, "middle_name": "", "country": "us", "level": "state", "created_at": "2018-10-18 14:42:12", "updated_at": "2019-01-13 06:06:19"}, {"id": "IAL000548", "leg_id": "IAL000548", "all_ids": ["IAL000548"], "full_name": "Mark S. Lofgren", "first_name": "Mark S.", "last_name": "Lofgren", "suffix": "", "photo_url": "https://www.legis.iowa.gov/photo?action=getPhoto&ga=2019-2020&pid=9406", "url": "https://www.legis.iowa.gov/legislators/legislator?ga=88&personID=9406", "email": "mark.lofgren@legis.iowa.gov", "party": "Republican", "chamber": "upper", "district": "46", "state": "ia", "sources": [{"url": "https://www.legis.iowa.gov/legislators/legislator?ga=88&personID=9406"}], "active": true, "roles": [{"term": "2017-2018", "district": "46", "chamber": "upper", "state": "ia", "party": "Republican", "type": "member", "start_date": null, "end_date": null}], "offices": [{"name": "District Office", "fax": null, "phone": "563-272-8683", "email": null, "address": "3025 Provence Ln, Muscatine, IA 52761", "type": "district"}, {"name": "Capitol Office", "fax": null, "phone": "515-281-3371", "email": "mark.lofgren@legis.iowa.gov", "address": null, "type": "capitol"}], "old_roles": {}, "middle_name": "", "country": "us", "level": "state", "created_at": "2018-10-18 14:42:12", "updated_at": "2019-01-13 06:06:26"}, {"id": "IAL000210", "leg_id": "IAL000210", "all_ids": ["IAL000210"], "full_name": "Ken Rozenboom", "first_name": "Ken", "last_name": "Rozenboom", "suffix": "", "photo_url": "https://www.legis.iowa.gov/photo?action=getPhoto&ga=2019-2020&pid=10731", "url": "https://www.legis.iowa.gov/legislators/legislator?ga=88&personID=10731", "email": "ken.rozenboom@legis.iowa.gov", "party": "Republican", "chamber": "upper", "district": "40", "state": "ia", "sources": [{"url": "https://www.legis.iowa.gov/legislators/legislator?ga=88&personID=10731"}], "active": true, "roles": [{"term": "2017-2018", "district": "40", "chamber": "upper", "state": "ia", "party": "Republican", "type": "member", "start_date": null, "end_date": null}], "offices": [{"name": "District Office", "fax": null, "phone": null, "email": null, "address": "2200 Oxford Ave, Oskaloosa, IA 52577", "type": "district"}, {"name": "Capitol Office", "fax": null, "phone": "515-281-3371", "email": "ken.rozenboom@legis.iowa.gov", "address": null, "type": "capitol"}], "old_roles": {}, "middle_name": "", "country": "us", "level": "state", "created_at": "2018-10-18 14:42:13", "updated_at": "2019-01-13 06:06:22"}, {"id": "IAL000556", "leg_id": "IAL000556", "all_ids": ["IAL000556"], "full_name": "Annette Sweeney", "first_name": "Annette", "last_name": "Sweeney", "suffix": "", "photo_url": "https://www.legis.iowa.gov/photo?action=getPhoto&ga=2019-2020&pid=6585", "url": "https://www.legis.iowa.gov/legislators/legislator?ga=88&personID=6585", "email": "annette.sweeney@legis.iowa.gov", "party": "Republican", "chamber": "upper", "district": "25", "state": "ia", "sources": [{"url": "https://www.legis.iowa.gov/legislators/legislator?ga=88&personID=6585"}], "active": true, "roles": [{"term": "2017-2018", "district": "25", "chamber": "upper", "state": "ia", "party": "Republican", "type": "member", "start_date": null, "end_date": null}], "offices": [{"name": "District Office", "fax": null, "phone": null, "email": null, "address": "21547 Hwy S27, Alden, IA 50006", "type": "district"}, {"name": "Capitol Office", "fax": null, "phone": "515-281-3371", "email": "annette.sweeney@legis.iowa.gov", "address": null, "type": "capitol"}], "old_roles": {}, "middle_name": "", "country": "us", "level": "state", "created_at": "2018-10-18 14:42:14", "updated_at": "2019-01-13 06:06:27"}, {"id": "IAL000196", "leg_id": "IAL000196", "all_ids": ["IAL000196"], "full_name": "Dennis Guth", "first_name": "Dennis", "last_name": "Guth", "suffix": "", "photo_url": "https://www.legis.iowa.gov/photo?action=getPhoto&ga=2019-2020&pid=10726", "url": "https://www.legis.iowa.gov/legislators/legislator?ga=88&personID=10726", "email": "dennis.guth@legis.iowa.gov", "party": "Republican", "chamber": "upper", "district": "4", "state": "ia", "sources": [{"url": "https://www.legis.iowa.gov/legislators/legislator?ga=88&personID=10726"}], "active": true, "roles": [{"term": "2017-2018", "district": "4", "chamber": "upper", "state": "ia", "party": "Republican", "type": "member", "start_date": null, "end_date": null}], "offices": [{"name": "District Office", "fax": null, "phone": null, "email": null, "address": "1770 Taft Ave, Klemme, IA 50449", "type": "district"}, {"name": "Capitol Office", "fax": null, "phone": "515-281-3371", "email": "dennis.guth@legis.iowa.gov", "address": null, "type": "capitol"}], "old_roles": {}, "middle_name": "", "country": "us", "level": "state", "created_at": "2018-10-18 14:42:16", "updated_at": "2019-01-13 06:06:21"}, {"id": "IAL000017", "leg_id": "IAL000017", "all_ids": ["IAL000017", "IAL000191", "IAL000487", "IAL000489"], "full_name": "William A. Dotzler Jr.", "first_name": "William", "last_name": "Dotzler", "suffix": "", "photo_url": "https://www.legis.iowa.gov/photo?action=getPhoto&ga=2019-2020&pid=157", "url": "https://www.legis.iowa.gov/legislators/legislator?ga=88&personID=157", "email": "bill.dotzler@legis.iowa.gov", "party": "Democratic", "chamber": "upper", "district": "31", "state": "ia", "sources": [{"url": "https://www.legis.iowa.gov/legislators/legislator?ga=88&personID=157"}], "active": true, "roles": [{"term": "2017-2018", "district": "31", "chamber": "upper", "state": "ia", "party": "Democratic", "type": "member", "start_date": null, "end_date": null}], "offices": [{"name": "District Office", "fax": null, "phone": "319-296-2947", "email": null, "address": "2837 Cedar Terrace Dr, Waterloo, IA 50702", "type": "district"}, {"name": "Capitol Office", "fax": null, "phone": "515-281-3371", "email": "bill.dotzler@legis.iowa.gov", "address": null, "type": "capitol"}], "old_roles": {}, "middle_name": "", "country": "us", "level": "state", "created_at": "2018-10-18 14:42:16", "updated_at": "2019-01-13 06:06:21"}, {"id": "IAL000048", "leg_id": "IAL000048", "all_ids": ["IAL000048", "IAL000220"], "full_name": "Jack Whitver", "first_name": "Jack", "last_name": "Whitver", "suffix": "", "photo_url": "https://www.legis.iowa.gov/photo?action=getPhoto&ga=2019-2020&pid=9768", "url": "https://www.legis.iowa.gov/legislators/legislator?ga=88&personID=9768", "email": "jack.whitver@legis.iowa.gov", "party": "Republican", "chamber": "upper", "district": "19", "state": "ia", "sources": [{"url": "https://www.legis.iowa.gov/legislators/legislator?ga=88&personID=9768"}], "active": true, "roles": [{"term": "2017-2018", "district": "19", "chamber": "upper", "state": "ia", "party": "Republican", "type": "member", "start_date": null, "end_date": null}], "offices": [{"name": "District Office", "fax": null, "phone": null, "email": null, "address": "4019 NE Bellagio Cir, Ankeny, IA 50021", "type": "district"}, {"name": "Capitol Office", "fax": null, "phone": "515-281-3371", "email": "jack.whitver@legis.iowa.gov", "address": null, "type": "capitol"}], "old_roles": {}, "middle_name": "", "country": "us", "level": "state", "created_at": "2018-10-18 14:42:17", "updated_at": "2019-01-13 06:06:25"}, {"id": "IAL000211", "leg_id": "IAL000211", "all_ids": ["IAL000211"], "full_name": "Charles Schneider", "first_name": "Charles", "last_name": "Schneider", "suffix": "", "photo_url": "https://www.legis.iowa.gov/photo?action=getPhoto&ga=2019-2020&pid=10829", "url": "https://www.legis.iowa.gov/legislators/legislator?ga=88&personID=10829", "email": "charles.schneider@legis.iowa.gov", "party": "Republican", "chamber": "upper", "district": "22", "state": "ia", "sources": [{"url": "https://www.legis.iowa.gov/legislators/legislator?ga=88&personID=10829"}], "active": true, "roles": [{"term": "2017-2018", "district": "22", "chamber": "upper", "state": "ia", "party": "Republican", "type": "member", "start_date": null, "end_date": null}], "offices": [{"name": "District Office", "fax": null, "phone": null, "email": null, "address": "7887 Cody Dr, West Des Moines, IA 50266", "type": "district"}, {"name": "Capitol Office", "fax": null, "phone": "515-281-3371", "email": "charles.schneider@legis.iowa.gov", "address": null, "type": "capitol"}], "old_roles": {}, "middle_name": "", "country": "us", "level": "state", "created_at": "2018-10-18 14:42:17", "updated_at": "2019-01-13 06:06:29"}, {"id": "IAL000543", "leg_id": "IAL000543", "all_ids": ["IAL000543", "IAL000552"], "full_name": "Jim Carlin", "first_name": "Jim", "last_name": "Carlin", "suffix": "", "photo_url": "https://www.legis.iowa.gov/photo?action=getPhoto&ga=2019-2020&pid=18041", "url": "https://www.legis.iowa.gov/legislators/legislator?ga=88&personID=18041", "email": "jim.carlin@legis.iowa.gov", "party": "Republican", "chamber": "upper", "district": "3", "state": "ia", "sources": [{"url": "https://www.legis.iowa.gov/legislators/legislator?ga=88&personID=18041"}], "active": true, "roles": [{"term": "2017-2018", "district": "3", "chamber": "upper", "state": "ia", "party": "Republican", "type": "member", "start_date": null, "end_date": null}], "offices": [{"name": "District Office", "fax": null, "phone": null, "email": null, "address": "43 Arlington Rd, Sioux City, IA 51106", "type": "district"}, {"name": "Capitol Office", "fax": null, "phone": "515-281-3371", "email": "jim.carlin@legis.iowa.gov", "address": null, "type": "capitol"}], "old_roles": {}, "middle_name": "", "country": "us", "level": "state", "created_at": "2018-10-18 14:42:18", "updated_at": "2019-01-13 06:06:18"}, {"id": "IAL000516", "leg_id": "IAL000516", "all_ids": ["IAL000516"], "full_name": "Tony Bisignano", "first_name": "Tony", "last_name": "Bisignano", "suffix": "", "photo_url": "https://www.legis.iowa.gov/photo?action=getPhoto&ga=2019-2020&pid=906", "url": "https://www.legis.iowa.gov/legislators/legislator?ga=88&personID=906", "email": "tony.bisignano@legis.iowa.gov", "party": "Democratic", "chamber": "upper", "district": "17", "state": "ia", "sources": [{"url": "https://www.legis.iowa.gov/legislators/legislator?ga=88&personID=906"}], "active": true, "roles": [{"term": "2017-2018", "district": "17", "chamber": "upper", "state": "ia", "party": "Democratic", "type": "member", "start_date": null, "end_date": null}], "offices": [{"name": "District Office", "fax": null, "phone": null, "email": null, "address": "2618 E Leach Ave, Des Moines, IA 50320", "type": "district"}, {"name": "Capitol Office", "fax": null, "phone": "515-281-3371", "email": "tony.bisignano@legis.iowa.gov", "address": null, "type": "capitol"}], "old_roles": {}, "middle_name": "", "country": "us", "level": "state", "created_at": "2018-10-18 14:42:18", "updated_at": "2019-01-13 06:06:25"}, {"id": "~not available~", "leg_id": "~not available~", "all_ids": ["~not available~"], "full_name": "Zach Wahls", "first_name": "Zach", "last_name": "Wahls", "suffix": "", "photo_url": "https://www.legis.iowa.gov/photo?action=getPhoto&ga=2019-2020&pid=27002", "url": "https://www.legis.iowa.gov/legislators/legislator?ga=88&personID=27002", "email": "zach.wahls@legis.iowa.gov", "party": "Democratic", "chamber": "upper", "district": "37", "state": "ia", "sources": [{"url": "https://www.legis.iowa.gov/legislators/legislator?ga=88&personID=27002"}], "active": true, "roles": [{"term": "2017-2018", "district": "37", "chamber": "upper", "state": "ia", "party": "Democratic", "type": "member", "start_date": null, "end_date": null}], "offices": [{"name": "District Office", "fax": null, "phone": null, "email": null, "address": "201 E 9th St #415, Coralville, IA 52241", "type": "district"}, {"name": "Capitol Office", "fax": null, "phone": "515-281-3371", "email": "zach.wahls@legis.iowa.gov", "address": null, "type": "capitol"}], "old_roles": {}, "middle_name": "", "country": "us", "level": "state", "created_at": "2019-01-13 06:06:18", "updated_at": "2019-01-13 06:06:18"}, {"id": "~not available~", "leg_id": "~not available~", "all_ids": ["~not available~"], "full_name": "Claire Celsi", "first_name": "Claire", "last_name": "Celsi", "suffix": "", "photo_url": "https://www.legis.iowa.gov/photo?action=getPhoto&ga=2019-2020&pid=27000", "url": "https://www.legis.iowa.gov/legislators/legislator?ga=88&personID=27000", "email": "claire.celsi@legis.iowa.gov", "party": "Democratic", "chamber": "upper", "district": "21", "state": "ia", "sources": [{"url": "https://www.legis.iowa.gov/legislators/legislator?ga=88&personID=27000"}], "active": true, "roles": [{"term": "2017-2018", "district": "21", "chamber": "upper", "state": "ia", "party": "Democratic", "type": "member", "start_date": null, "end_date": null}], "offices": [{"name": "District Office", "fax": null, "phone": "515-462-0487", "email": null, "address": "4400 EP True Pkwy #52, West Des Moines, IA 50265", "type": "district"}, {"name": "Capitol Office", "fax": null, "phone": "515-281-3371", "email": "claire.celsi@legis.iowa.gov", "address": null, "type": "capitol"}], "old_roles": {}, "middle_name": "", "country": "us", "level": "state", "created_at": "2019-01-13 06:06:19", "updated_at": "2019-01-13 06:06:19"}, {"id": "~not available~", "leg_id": "~not available~", "all_ids": ["~not available~"], "full_name": "Jackie Smith", "first_name": "Jackie", "last_name": "Smith", "suffix": "", "photo_url": "https://www.legis.iowa.gov/photo?action=getPhoto&ga=2019-2020&pid=26998", "url": "https://www.legis.iowa.gov/legislators/legislator?ga=88&personID=26998", "email": "jackie.smith@legis.iowa.gov", "party": "Democratic", "chamber": "upper", "district": "7", "state": "ia", "sources": [{"url": "https://www.legis.iowa.gov/legislators/legislator?ga=88&personID=26998"}], "active": true, "roles": [{"term": "2017-2018", "district": "7", "chamber": "upper", "state": "ia", "party": "Democratic", "type": "member", "start_date": null, "end_date": null}], "offices": [{"name": "District Office", "fax": null, "phone": "712-898-0477", "email": null, "address": "2324 Mohawk Ct, Sioux City, IA 51104", "type": "district"}, {"name": "Capitol Office", "fax": null, "phone": "515-281-3371", "email": "jackie.smith@legis.iowa.gov", "address": null, "type": "capitol"}], "old_roles": {}, "middle_name": "", "country": "us", "level": "state", "created_at": "2019-01-13 06:06:22", "updated_at": "2019-01-13 06:06:22"}, {"id": "~not available~", "leg_id": "~not available~", "all_ids": ["~not available~"], "full_name": "Zach Whiting", "first_name": "Zach", "last_name": "Whiting", "suffix": "", "photo_url": "https://www.legis.iowa.gov/photo?action=getPhoto&ga=2019-2020&pid=26997", "url": "https://www.legis.iowa.gov/legislators/legislator?ga=88&personID=26997", "email": "zach.whiting@legis.iowa.gov", "party": "Republican", "chamber": "upper", "district": "1", "state": "ia", "sources": [{"url": "https://www.legis.iowa.gov/legislators/legislator?ga=88&personID=26997"}], "active": true, "roles": [{"term": "2017-2018", "district": "1", "chamber": "upper", "state": "ia", "party": "Republican", "type": "member", "start_date": null, "end_date": null}], "offices": [{"name": "District Office", "fax": null, "phone": null, "email": null, "address": "PO Box 385, Spirit Lake, IA 51360", "type": "district"}, {"name": "Capitol Office", "fax": null, "phone": "515-281-3371", "email": "zach.whiting@legis.iowa.gov", "address": null, "type": "capitol"}], "old_roles": {}, "middle_name": "", "country": "us", "level": "state", "created_at": "2019-01-13 06:06:23", "updated_at": "2019-01-13 06:06:24"}, {"id": "~not available~", "leg_id": "~not available~", "all_ids": ["~not available~"], "full_name": "Carrie Koelker", "first_name": "Carrie", "last_name": "Koelker", "suffix": "", "photo_url": "https://www.legis.iowa.gov/photo?action=getPhoto&ga=2019-2020&pid=27001", "url": "https://www.legis.iowa.gov/legislators/legislator?ga=88&personID=27001", "email": "carrie.koelker@legis.iowa.gov", "party": "Republican", "chamber": "upper", "district": "29", "state": "ia", "sources": [{"url": "https://www.legis.iowa.gov/legislators/legislator?ga=88&personID=27001"}], "active": true, "roles": [{"term": "2017-2018", "district": "29", "chamber": "upper", "state": "ia", "party": "Republican", "type": "member", "start_date": null, "end_date": null}], "offices": [{"name": "District Office", "fax": null, "phone": "563-875-7530", "email": null, "address": "807 Third St NW, Dyersville, IA 52040", "type": "district"}, {"name": "Capitol Office", "fax": null, "phone": "515-281-3371", "email": "carrie.koelker@legis.iowa.gov", "address": null, "type": "capitol"}], "old_roles": {}, "middle_name": "", "country": "us", "level": "state", "created_at": "2019-01-13 06:06:25", "updated_at": "2019-01-13 06:06:25"}, {"id": "~not available~", "leg_id": "~not available~", "all_ids": ["~not available~"], "full_name": "Chris Cournoyer", "first_name": "Chris", "last_name": "Cournoyer", "suffix": "", "photo_url": "https://www.legis.iowa.gov/photo?action=getPhoto&ga=2019-2020&pid=27004", "url": "https://www.legis.iowa.gov/legislators/legislator?ga=88&personID=27004", "email": "chris.cournoyer@legis.iowa.gov", "party": "Republican", "chamber": "upper", "district": "49", "state": "ia", "sources": [{"url": "https://www.legis.iowa.gov/legislators/legislator?ga=88&personID=27004"}], "active": true, "roles": [{"term": "2017-2018", "district": "49", "chamber": "upper", "state": "ia", "party": "Republican", "type": "member", "start_date": null, "end_date": null}], "offices": [{"name": "District Office", "fax": null, "phone": null, "email": null, "address": "27633 Blackhawk Ct, LeClaire, IA 52753", "type": "district"}, {"name": "Capitol Office", "fax": null, "phone": "515-281-3371", "email": "chris.cournoyer@legis.iowa.gov", "address": null, "type": "capitol"}], "old_roles": {}, "middle_name": "", "country": "us", "level": "state", "created_at": "2019-01-13 06:06:27", "updated_at": "2019-01-13 06:06:27"}, {"id": "~not available~", "leg_id": "~not available~", "all_ids": ["~not available~"], "full_name": "Mariannette Miller-Meeks", "first_name": "Mariannette", "last_name": "Miller-Meeks", "suffix": "", "photo_url": "https://www.legis.iowa.gov/photo?action=getPhoto&ga=2019-2020&pid=27003", "url": "https://www.legis.iowa.gov/legislators/legislator?ga=88&personID=27003", "email": "mariannette.miller-meeks@legis.iowa.gov", "party": "Republican", "chamber": "upper", "district": "41", "state": "ia", "sources": [{"url": "https://www.legis.iowa.gov/legislators/legislator?ga=88&personID=27003"}], "active": true, "roles": [{"term": "2017-2018", "district": "41", "chamber": "upper", "state": "ia", "party": "Republican", "type": "member", "start_date": null, "end_date": null}], "offices": [{"name": "District Office", "fax": null, "phone": "641-683-7551", "email": null, "address": "11674 90th St, Ottumwa, IA 52501", "type": "district"}, {"name": "Capitol Office", "fax": null, "phone": "515-281-3371", "email": "mariannette.miller-meeks@legis.iowa.gov", "address": null, "type": "capitol"}], "old_roles": {}, "middle_name": "", "country": "us", "level": "state", "created_at": "2019-01-13 06:06:28", "updated_at": "2019-01-13 06:06:28"}]'
In [17]:
list_of_dicts = [{"animal": "cat", "value": "high"}, {"animal":"dog", "value": "ugly"}]
In [18]:
for x in list_of_dicts:
    print(x["animal"])
cat
dog
In [19]:
import json
In [20]:
senate = json.loads(r.text)
In [21]:
senate
Out[21]:
[{u'active': True,
  u'all_ids': [u'IAL000213'],
  u'chamber': u'upper',
  u'country': u'us',
  u'created_at': u'2018-10-18 14:41:48',
  u'district': u'6',
  u'email': u'mark.segebart@legis.iowa.gov',
  u'first_name': u'Mark',
  u'full_name': u'Mark Segebart',
  u'id': u'IAL000213',
  u'last_name': u'Segebart',
  u'leg_id': u'IAL000213',
  u'level': u'state',
  u'middle_name': u'',
  u'offices': [{u'address': u'1820 - 350th St, Vail, IA 51465',
    u'email': None,
    u'fax': None,
    u'name': u'District Office',
    u'phone': None,
    u'type': u'district'},
   {u'address': None,
    u'email': u'mark.segebart@legis.iowa.gov',
    u'fax': None,
    u'name': u'Capitol Office',
    u'phone': u'515-281-3371',
    u'type': u'capitol'}],
  u'old_roles': {},
  u'party': u'Republican',
  u'photo_url': u'https://www.legis.iowa.gov/photo?action=getPhoto&ga=2019-2020&pid=10727',
  u'roles': [{u'chamber': u'upper',
    u'district': u'6',
    u'end_date': None,
    u'party': u'Republican',
    u'start_date': None,
    u'state': u'ia',
    u'term': u'2017-2018',
    u'type': u'member'}],
  u'sources': [{u'url': u'https://www.legis.iowa.gov/legislators/legislator?ga=88&personID=10727'}],
  u'state': u'ia',
  u'suffix': u'',
  u'updated_at': u'2019-01-13 06:06:29',
  u'url': u'https://www.legis.iowa.gov/legislators/legislator?ga=88&personID=10727'},
 {u'active': True,
  u'all_ids': [u'IAL000039', u'IAL000209'],
  u'chamber': u'upper',
  u'country': u'us',
  u'created_at': u'2018-10-18 14:41:49',
  u'district': u'27',
  u'email': u'amanda.ragan@legis.iowa.gov',
  u'first_name': u'Amanda',
  u'full_name': u'Amanda Ragan',
  u'id': u'IAL000039',
  u'last_name': u'Ragan',
  u'leg_id': u'IAL000039',
  u'level': u'state',
  u'middle_name': u'',
  u'offices': [{u'address': u'361 S Pennsylvania Ave 1-D, Mason City, IA 50401',
    u'email': None,
    u'fax': None,
    u'name': u'District Office',
    u'phone': u'641-424-0874',
    u'type': u'district'},
   {u'address': None,
    u'email': u'amanda.ragan@legis.iowa.gov',
    u'fax': None,
    u'name': u'Capitol Office',
    u'phone': u'515-281-3371',
    u'type': u'capitol'}],
  u'old_roles': {},
  u'party': u'Democratic',
  u'photo_url': u'https://www.legis.iowa.gov/photo?action=getPhoto&ga=2019-2020&pid=110',
  u'roles': [{u'chamber': u'upper',
    u'district': u'27',
    u'end_date': None,
    u'party': u'Democratic',
    u'start_date': None,
    u'state': u'ia',
    u'term': u'2017-2018',
    u'type': u'member'}],
  u'sources': [{u'url': u'https://www.legis.iowa.gov/legislators/legislator?ga=88&personID=110'}],
  u'state': u'ia',
  u'suffix': u'',
  u'updated_at': u'2019-01-13 06:06:23',
  u'url': u'https://www.legis.iowa.gov/legislators/legislator?ga=88&personID=110'},
 {u'active': True,
  u'all_ids': [u'IAL000028', u'IAL000199', u'IAL000481'],
  u'chamber': u'upper',
  u'country': u'us',
  u'created_at': u'2018-10-18 14:41:49',
  u'district': u'33',
  u'email': u'rob.hogg@legis.iowa.gov',
  u'first_name': u'Robert',
  u'full_name': u'Robert Hogg',
  u'id': u'IAL000028',
  u'last_name': u'Hogg',
  u'leg_id': u'IAL000028',
  u'level': u'state',
  u'middle_name': u'',
  u'offices': [{u'address': u'PO Box 1361, Cedar Rapids, IA 52406',
    u'email': None,
    u'fax': None,
    u'name': u'District Office',
    u'phone': u'319-247-0223',
    u'type': u'district'},
   {u'address': None,
    u'email': u'rob.hogg@legis.iowa.gov',
    u'fax': None,
    u'name': u'Capitol Office',
    u'phone': u'515-281-3371',
    u'type': u'capitol'}],
  u'old_roles': {},
  u'party': u'Democratic',
  u'photo_url': u'https://www.legis.iowa.gov/photo?action=getPhoto&ga=2019-2020&pid=6257',
  u'roles': [{u'chamber': u'upper',
    u'district': u'33',
    u'end_date': None,
    u'party': u'Democratic',
    u'start_date': None,
    u'state': u'ia',
    u'term': u'2017-2018',
    u'type': u'member'}],
  u'sources': [{u'url': u'https://www.legis.iowa.gov/legislators/legislator?ga=88&personID=6257'}],
  u'state': u'ia',
  u'suffix': u'',
  u'updated_at': u'2019-01-13 06:06:21',
  u'url': u'https://www.legis.iowa.gov/legislators/legislator?ga=88&personID=6257'},
 {u'active': True,
  u'all_ids': [u'IAL000234', u'IAL000514'],
  u'chamber': u'upper',
  u'country': u'us',
  u'created_at': u'2018-10-18 14:41:51',
  u'district': u'12',
  u'email': u'mark.costello@legis.iowa.gov',
  u'first_name': u'Mark',
  u'full_name': u'Mark Costello',
  u'id': u'IAL000234',
  u'last_name': u'Costello',
  u'leg_id': u'IAL000234',
  u'level': u'state',
  u'middle_name': u'',
  u'offices': [{u'address': u'37265 Rains Ave, Imogene, IA 51645',
    u'email': None,
    u'fax': None,
    u'name': u'District Office',
    u'phone': None,
    u'type': u'district'},
   {u'address': None,
    u'email': u'mark.costello@legis.iowa.gov',
    u'fax': None,
    u'name': u'Capitol Office',
    u'phone': u'515-281-3371',
    u'type': u'capitol'}],
  u'old_roles': {},
  u'party': u'Republican',
  u'photo_url': u'https://www.legis.iowa.gov/photo?action=getPhoto&ga=2019-2020&pid=10749',
  u'roles': [{u'chamber': u'upper',
    u'district': u'12',
    u'end_date': None,
    u'party': u'Republican',
    u'start_date': None,
    u'state': u'ia',
    u'term': u'2017-2018',
    u'type': u'member'}],
  u'sources': [{u'url': u'https://www.legis.iowa.gov/legislators/legislator?ga=88&personID=10749'}],
  u'state': u'ia',
  u'suffix': u'',
  u'updated_at': u'2019-01-13 06:06:30',
  u'url': u'https://www.legis.iowa.gov/legislators/legislator?ga=88&personID=10749'},
 {u'active': True,
  u'all_ids': [u'IAL000533'],
  u'chamber': u'upper',
  u'country': u'us',
  u'created_at': u'2018-10-18 14:41:51',
  u'district': u'32',
  u'email': u'craig.johnson@legis.iowa.gov',
  u'first_name': u'Craig',
  u'full_name': u'Craig Johnson',
  u'id': u'IAL000533',
  u'last_name': u'Johnson',
  u'leg_id': u'IAL000533',
  u'level': u'state',
  u'middle_name': u'',
  u'offices': [{u'address': u'413 - 13th Ave NE, Independence, IA 50644',
    u'email': None,
    u'fax': None,
    u'name': u'District Office',
    u'phone': u'319-334-2413',
    u'type': u'district'},
   {u'address': None,
    u'email': u'craig.johnson@legis.iowa.gov',
    u'fax': None,
    u'name': u'Capitol Office',
    u'phone': u'515-281-3371',
    u'type': u'capitol'}],
  u'old_roles': {},
  u'party': u'Republican',
  u'photo_url': u'https://www.legis.iowa.gov/photo?action=getPhoto&ga=2019-2020&pid=18075',
  u'roles': [{u'chamber': u'upper',
    u'district': u'32',
    u'end_date': None,
    u'party': u'Republican',
    u'start_date': None,
    u'state': u'ia',
    u'term': u'2017-2018',
    u'type': u'member'}],
  u'sources': [{u'url': u'https://www.legis.iowa.gov/legislators/legislator?ga=88&personID=18075'}],
  u'state': u'ia',
  u'suffix': u'',
  u'updated_at': u'2019-01-13 06:06:28',
  u'url': u'https://www.legis.iowa.gov/legislators/legislator?ga=88&personID=18075'},
 {u'active': True,
  u'all_ids': [u'IAL000186'],
  u'chamber': u'upper',
  u'country': u'us',
  u'created_at': u'2018-10-18 14:41:52',
  u'district': u'10',
  u'email': u'jake.chapman@legis.iowa.gov',
  u'first_name': u'Jake',
  u'full_name': u'Jake Chapman',
  u'id': u'IAL000186',
  u'last_name': u'Chapman',
  u'leg_id': u'IAL000186',
  u'level': u'state',
  u'middle_name': u'',
  u'offices': [{u'address': u'25862 Fox Ridge Ln, Adel, IA 50003',
    u'email': None,
    u'fax': None,
    u'name': u'District Office',
    u'phone': None,
    u'type': u'district'},
   {u'address': None,
    u'email': u'jake.chapman@legis.iowa.gov',
    u'fax': None,
    u'name': u'Capitol Office',
    u'phone': u'515-281-3371',
    u'type': u'capitol'}],
  u'old_roles': {},
  u'party': u'Republican',
  u'photo_url': u'https://www.legis.iowa.gov/photo?action=getPhoto&ga=2019-2020&pid=10728',
  u'roles': [{u'chamber': u'upper',
    u'district': u'10',
    u'end_date': None,
    u'party': u'Republican',
    u'start_date': None,
    u'state': u'ia',
    u'term': u'2017-2018',
    u'type': u'member'}],
  u'sources': [{u'url': u'https://www.legis.iowa.gov/legislators/legislator?ga=88&personID=10728'}],
  u'state': u'ia',
  u'suffix': u'',
  u'updated_at': u'2019-01-13 06:06:19',
  u'url': u'https://www.legis.iowa.gov/legislators/legislator?ga=88&personID=10728'},
 {u'active': True,
  u'all_ids': [u'IAL000070',
   u'IAL000246',
   u'IAL000322',
   u'IAL000329',
   u'IAL000328',
   u'IAL000479'],
  u'chamber': u'upper',
  u'country': u'us',
  u'created_at': u'2018-10-18 14:41:52',
  u'district': u'13',
  u'email': u'julian.garrett@legis.iowa.gov',
  u'first_name': u'Julian B.',
  u'full_name': u'Julian B. Garrett',
  u'id': u'IAL000070',
  u'last_name': u'Garrett',
  u'leg_id': u'IAL000070',
  u'level': u'state',
  u'middle_name': u'',
  u'offices': [{u'address': u'Box 493, Indianola, IA 50125',
    u'email': None,
    u'fax': None,
    u'name': u'District Office',
    u'phone': None,
    u'type': u'district'},
   {u'address': None,
    u'email': u'julian.garrett@legis.iowa.gov',
    u'fax': None,
    u'name': u'Capitol Office',
    u'phone': u'515-281-3371',
    u'type': u'capitol'}],
  u'old_roles': {},
  u'party': u'Republican',
  u'photo_url': u'https://www.legis.iowa.gov/photo?action=getPhoto&ga=2019-2020&pid=9404',
  u'roles': [{u'chamber': u'upper',
    u'district': u'13',
    u'end_date': None,
    u'party': u'Republican',
    u'start_date': None,
    u'state': u'ia',
    u'term': u'2017-2018',
    u'type': u'member'}],
  u'sources': [{u'url': u'https://www.legis.iowa.gov/legislators/legislator?ga=88&personID=9404'}],
  u'state': u'ia',
  u'suffix': u'',
  u'updated_at': u'2019-01-13 06:06:28',
  u'url': u'https://www.legis.iowa.gov/legislators/legislator?ga=88&personID=9404'},
 {u'active': True,
  u'all_ids': [u'IAL000537'],
  u'chamber': u'upper',
  u'country': u'us',
  u'created_at': u'2018-10-18 14:41:52',
  u'district': u'16',
  u'email': u'nate.boulton@legis.iowa.gov',
  u'first_name': u'Nate',
  u'full_name': u'Nate Boulton',
  u'id': u'IAL000537',
  u'last_name': u'Boulton',
  u'leg_id': u'IAL000537',
  u'level': u'state',
  u'middle_name': u'',
  u'offices': [{u'address': u'2670 Wisconsin Ave, Des Moines, IA 50317',
    u'email': None,
    u'fax': None,
    u'name': u'District Office',
    u'phone': u'515-265-1389',
    u'type': u'district'},
   {u'address': None,
    u'email': u'nate.boulton@legis.iowa.gov',
    u'fax': None,
    u'name': u'Capitol Office',
    u'phone': u'515-281-3371',
    u'type': u'capitol'}],
  u'old_roles': {},
  u'party': u'Democratic',
  u'photo_url': u'https://www.legis.iowa.gov/photo?action=getPhoto&ga=2019-2020&pid=18073',
  u'roles': [{u'chamber': u'upper',
    u'district': u'16',
    u'end_date': None,
    u'party': u'Democratic',
    u'start_date': None,
    u'state': u'ia',
    u'term': u'2017-2018',
    u'type': u'member'}],
  u'sources': [{u'url': u'https://www.legis.iowa.gov/legislators/legislator?ga=88&personID=18073'}],
  u'state': u'ia',
  u'suffix': u'',
  u'updated_at': u'2019-01-13 06:06:21',
  u'url': u'https://www.legis.iowa.gov/legislators/legislator?ga=88&personID=18073'},
 {u'active': True,
  u'all_ids': [u'IAL000185'],
  u'chamber': u'upper',
  u'country': u'us',
  u'created_at': u'2018-10-18 14:41:53',
  u'district': u'28',
  u'email': u'michael.breitbach@legis.iowa.gov',
  u'first_name': u'Michael',
  u'full_name': u'Michael Breitbach',
  u'id': u'IAL000185',
  u'last_name': u'Breitbach',
  u'leg_id': u'IAL000185',
  u'level': u'state',
  u'middle_name': u'',
  u'offices': [{u'address': u'301 W Mission St, Strawberry Point, IA 52076',
    u'email': None,
    u'fax': None,
    u'name': u'District Office',
    u'phone': u'563-933-6486',
    u'type': u'district'},
   {u'address': None,
    u'email': u'michael.breitbach@legis.iowa.gov',
    u'fax': None,
    u'name': u'Capitol Office',
    u'phone': u'515-281-3371',
    u'type': u'capitol'}],
  u'old_roles': {},
  u'party': u'Republican',
  u'photo_url': u'https://www.legis.iowa.gov/photo?action=getPhoto&ga=2019-2020&pid=10730',
  u'roles': [{u'chamber': u'upper',
    u'district': u'28',
    u'end_date': None,
    u'party': u'Republican',
    u'start_date': None,
    u'state': u'ia',
    u'term': u'2017-2018',
    u'type': u'member'}],
  u'sources': [{u'url': u'https://www.legis.iowa.gov/legislators/legislator?ga=88&personID=10730'}],
  u'state': u'ia',
  u'suffix': u'',
  u'updated_at': u'2019-01-13 06:06:29',
  u'url': u'https://www.legis.iowa.gov/legislators/legislator?ga=88&personID=10730'},
 {u'active': True,
  u'all_ids': [u'IAL000528'],
  u'chamber': u'upper',
  u'country': u'us',
  u'created_at': u'2018-10-18 14:41:53',
  u'district': u'8',
  u'email': u'dan.dawson@legis.iowa.gov',
  u'first_name': u'Dan',
  u'full_name': u'Dan Dawson',
  u'id': u'IAL000528',
  u'last_name': u'Dawson',
  u'leg_id': u'IAL000528',
  u'level': u'state',
  u'middle_name': u'',
  u'offices': [{u'address': u'213 Upland Dr, Council Bluffs, IA 51503',
    u'email': None,
    u'fax': None,
    u'name': u'District Office',
    u'phone': u'712-256-1199',
    u'type': u'district'},
   {u'address': None,
    u'email': u'dan.dawson@legis.iowa.gov',
    u'fax': None,
    u'name': u'Capitol Office',
    u'phone': u'515-281-3371',
    u'type': u'capitol'}],
  u'old_roles': {},
  u'party': u'Republican',
  u'photo_url': u'https://www.legis.iowa.gov/photo?action=getPhoto&ga=2019-2020&pid=18072',
  u'roles': [{u'chamber': u'upper',
    u'district': u'8',
    u'end_date': None,
    u'party': u'Republican',
    u'start_date': None,
    u'state': u'ia',
    u'term': u'2017-2018',
    u'type': u'member'}],
  u'sources': [{u'url': u'https://www.legis.iowa.gov/legislators/legislator?ga=88&personID=18072'}],
  u'state': u'ia',
  u'suffix': u'',
  u'updated_at': u'2019-01-13 06:06:30',
  u'url': u'https://www.legis.iowa.gov/legislators/legislator?ga=88&personID=18072'},
 {u'active': True,
  u'all_ids': [u'IAL000540'],
  u'chamber': u'upper',
  u'country': u'us',
  u'created_at': u'2018-10-18 14:41:54',
  u'district': u'44',
  u'email': u'tom.greene@legis.iowa.gov',
  u'first_name': u'Thomas A.',
  u'full_name': u'Thomas A. Greene',
  u'id': u'IAL000540',
  u'last_name': u'Greene',
  u'leg_id': u'IAL000540',
  u'level': u'state',
  u'middle_name': u'',
  u'offices': [{u'address': u'5763 Hartman Rd, Burlington, IA 52601',
    u'email': None,
    u'fax': None,
    u'name': u'District Office',
    u'phone': u'319-750-6579',
    u'type': u'district'},
   {u'address': None,
    u'email': u'tom.greene@legis.iowa.gov',
    u'fax': None,
    u'name': u'Capitol Office',
    u'phone': u'515-281-3371',
    u'type': u'capitol'}],
  u'old_roles': {},
  u'party': u'Republican',
  u'photo_url': u'https://www.legis.iowa.gov/photo?action=getPhoto&ga=2019-2020&pid=18077',
  u'roles': [{u'chamber': u'upper',
    u'district': u'44',
    u'end_date': None,
    u'party': u'Republican',
    u'start_date': None,
    u'state': u'ia',
    u'term': u'2017-2018',
    u'type': u'member'}],
  u'sources': [{u'url': u'https://www.legis.iowa.gov/legislators/legislator?ga=88&personID=18077'}],
  u'state': u'ia',
  u'suffix': u'',
  u'updated_at': u'2019-01-13 06:06:21',
  u'url': u'https://www.legis.iowa.gov/legislators/legislator?ga=88&personID=18077'},
 {u'active': True,
  u'all_ids': [u'IAL000031', u'IAL000202'],
  u'chamber': u'upper',
  u'country': u'us',
  u'created_at': u'2018-10-18 14:41:54',
  u'district': u'50',
  u'email': u'pam.jochum@legis.iowa.gov',
  u'first_name': u'Pam',
  u'full_name': u'Pam Jochum',
  u'id': u'IAL000031',
  u'last_name': u'Jochum',
  u'leg_id': u'IAL000031',
  u'level': u'state',
  u'middle_name': u'',
  u'offices': [{u'address': u'2368 Jackson St, Dubuque, IA 52001',
    u'email': None,
    u'fax': None,
    u'name': u'District Office',
    u'phone': u'563-556-6530',
    u'type': u'district'},
   {u'address': None,
    u'email': u'pam.jochum@legis.iowa.gov',
    u'fax': None,
    u'name': u'Capitol Office',
    u'phone': u'515-281-3371',
    u'type': u'capitol'}],
  u'old_roles': {},
  u'party': u'Democratic',
  u'photo_url': u'https://www.legis.iowa.gov/photo?action=getPhoto&ga=2019-2020&pid=35',
  u'roles': [{u'chamber': u'upper',
    u'district': u'50',
    u'end_date': None,
    u'party': u'Democratic',
    u'start_date': None,
    u'state': u'ia',
    u'term': u'2017-2018',
    u'type': u'member'}],
  u'sources': [{u'url': u'https://www.legis.iowa.gov/legislators/legislator?ga=88&personID=35'}],
  u'state': u'ia',
  u'suffix': u'',
  u'updated_at': u'2019-01-13 06:06:30',
  u'url': u'https://www.legis.iowa.gov/legislators/legislator?ga=88&personID=35'},
 {u'active': True,
  u'all_ids': [u'IAL000009', u'IAL000182'],
  u'chamber': u'upper',
  u'country': u'us',
  u'created_at': u'2018-10-18 14:41:54',
  u'district': u'43',
  u'email': u'joe.bolkcom@legis.iowa.gov',
  u'first_name': u'Joe',
  u'full_name': u'Joe Bolkcom',
  u'id': u'IAL000009',
  u'last_name': u'Bolkcom',
  u'leg_id': u'IAL000009',
  u'level': u'state',
  u'middle_name': u'',
  u'offices': [{u'address': u'1235 Oakes Dr, Iowa City, IA 52245',
    u'email': None,
    u'fax': None,
    u'name': u'District Office',
    u'phone': u'319-337-6280',
    u'type': u'district'},
   {u'address': None,
    u'email': u'joe.bolkcom@legis.iowa.gov',
    u'fax': None,
    u'name': u'Capitol Office',
    u'phone': u'515-281-3371',
    u'type': u'capitol'}],
  u'old_roles': {},
  u'party': u'Democratic',
  u'photo_url': u'https://www.legis.iowa.gov/photo?action=getPhoto&ga=2019-2020&pid=123',
  u'roles': [{u'chamber': u'upper',
    u'district': u'43',
    u'end_date': None,
    u'party': u'Democratic',
    u'start_date': None,
    u'state': u'ia',
    u'term': u'2017-2018',
    u'type': u'member'}],
  u'sources': [{u'url': u'https://www.legis.iowa.gov/legislators/legislator?ga=88&personID=123'}],
  u'state': u'ia',
  u'suffix': u'',
  u'updated_at': u'2019-01-13 06:06:19',
  u'url': u'https://www.legis.iowa.gov/legislators/legislator?ga=88&personID=123'},
 {u'active': True,
  u'all_ids': [u'IAL000151', u'IAL000158', u'IAL000170', u'IAL000205'],
  u'chamber': u'upper',
  u'country': u'us',
  u'created_at': u'2018-10-18 14:41:55',
  u'district': u'34',
  u'email': u'liz.mathis@legis.iowa.gov',
  u'first_name': u'Liz',
  u'full_name': u'Liz Mathis',
  u'id': u'IAL000151',
  u'last_name': u'Mathis',
  u'leg_id': u'IAL000151',
  u'level': u'state',
  u'middle_name': u'',
  u'offices': [{u'address': u'320 S Blairsferry Crossing, Hiawatha, IA 52233',
    u'email': None,
    u'fax': None,
    u'name': u'District Office',
    u'phone': u'319-361-1725',
    u'type': u'district'},
   {u'address': None,
    u'email': u'liz.mathis@legis.iowa.gov',
    u'fax': None,
    u'name': u'Capitol Office',
    u'phone': u'515-281-3371',
    u'type': u'capitol'}],
  u'old_roles': {},
  u'party': u'Democratic',
  u'photo_url': u'https://www.legis.iowa.gov/photo?action=getPhoto&ga=2019-2020&pid=10318',
  u'roles': [{u'chamber': u'upper',
    u'district': u'34',
    u'end_date': None,
    u'party': u'Democratic',
    u'start_date': None,
    u'state': u'ia',
    u'term': u'2017-2018',
    u'type': u'member'}],
  u'sources': [{u'url': u'https://www.legis.iowa.gov/legislators/legislator?ga=88&personID=10318'}],
  u'state': u'ia',
  u'suffix': u'',
  u'updated_at': u'2019-01-13 06:06:22',
  u'url': u'https://www.legis.iowa.gov/legislators/legislator?ga=88&personID=10318'},
 {u'active': True,
  u'all_ids': [u'IAL000014', u'IAL000188'],
  u'chamber': u'upper',
  u'country': u'us',
  u'created_at': u'2018-10-18 14:41:56',
  u'district': u'30',
  u'email': u'jeffdanielson@gmail.com',
  u'first_name': u'Jeff',
  u'full_name': u'Jeff Danielson',
  u'id': u'IAL000014',
  u'last_name': u'Danielson',
  u'leg_id': u'IAL000014',
  u'level': u'state',
  u'middle_name': u'',
  u'offices': [{u'address': u'PO Box 1191, Cedar Falls, IA 50613',
    u'email': None,
    u'fax': None,
    u'name': u'District Office',
    u'phone': None,
    u'type': u'district'},
   {u'address': None,
    u'email': u'jeffdanielson@gmail.com',
    u'fax': None,
    u'name': u'Capitol Office',
    u'phone': u'515-281-3371',
    u'type': u'capitol'}],
  u'old_roles': {},
  u'party': u'Democratic',
  u'photo_url': u'https://www.legis.iowa.gov/photo?action=getPhoto&ga=2019-2020&pid=785',
  u'roles': [{u'chamber': u'upper',
    u'district': u'30',
    u'end_date': None,
    u'party': u'Democratic',
    u'start_date': None,
    u'state': u'ia',
    u'term': u'2017-2018',
    u'type': u'member'}],
  u'sources': [{u'url': u'https://www.legis.iowa.gov/legislators/legislator?ga=88&personID=785'}],
  u'state': u'ia',
  u'suffix': u'',
  u'updated_at': u'2019-01-13 06:06:27',
  u'url': u'https://www.legis.iowa.gov/legislators/legislator?ga=88&personID=785'},
 {u'active': True,
  u'all_ids': [u'IAL000050', u'IAL000222'],
  u'chamber': u'upper',
  u'country': u'us',
  u'created_at': u'2018-10-18 14:41:56',
  u'district': u'20',
  u'email': u'brad.zaun@legis.iowa.gov',
  u'first_name': u'Brad',
  u'full_name': u'Brad Zaun',
  u'id': u'IAL000050',
  u'last_name': u'Zaun',
  u'leg_id': u'IAL000050',
  u'level': u'state',
  u'middle_name': u'',
  u'offices': [{u'address': u'7032 Holcomb Ave, Urbandale, IA 50322',
    u'email': None,
    u'fax': None,
    u'name': u'District Office',
    u'phone': u'515-276-2025',
    u'type': u'district'},
   {u'address': None,
    u'email': u'brad.zaun@legis.iowa.gov',
    u'fax': None,
    u'name': u'Capitol Office',
    u'phone': u'515-281-3371',
    u'type': u'capitol'}],
  u'old_roles': {},
  u'party': u'Republican',
  u'photo_url': u'https://www.legis.iowa.gov/photo?action=getPhoto&ga=2019-2020&pid=788',
  u'roles': [{u'chamber': u'upper',
    u'district': u'20',
    u'end_date': None,
    u'party': u'Republican',
    u'start_date': None,
    u'state': u'ia',
    u'term': u'2017-2018',
    u'type': u'member'}],
  u'sources': [{u'url': u'https://www.legis.iowa.gov/legislators/legislator?ga=88&personID=788'}],
  u'state': u'ia',
  u'suffix': u'',
  u'updated_at': u'2019-01-13 06:06:23',
  u'url': u'https://www.legis.iowa.gov/legislators/legislator?ga=88&personID=788'},
 {u'active': True,
  u'all_ids': [u'IAL000223'],
  u'chamber': u'upper',
  u'country': u'us',
  u'created_at': u'2018-10-18 14:41:57',
  u'district': u'48',
  u'email': u'dan.zumbach@legis.iowa.gov',
  u'first_name': u'Dan',
  u'full_name': u'Dan Zumbach',
  u'id': u'IAL000223',
  u'last_name': u'Zumbach',
  u'leg_id': u'IAL000223',
  u'level': u'state',
  u'middle_name': u'',
  u'offices': [{u'address': u'2618 - 140th Ave, Ryan, IA 52330',
    u'email': None,
    u'fax': None,
    u'name': u'District Office',
    u'phone': None,
    u'type': u'district'},
   {u'address': None,
    u'email': u'dan.zumbach@legis.iowa.gov',
    u'fax': None,
    u'name': u'Capitol Office',
    u'phone': u'515-281-3371',
    u'type': u'capitol'}],
  u'old_roles': {},
  u'party': u'Republican',
  u'photo_url': u'https://www.legis.iowa.gov/photo?action=getPhoto&ga=2019-2020&pid=10733',
  u'roles': [{u'chamber': u'upper',
    u'district': u'48',
    u'end_date': None,
    u'party': u'Republican',
    u'start_date': None,
    u'state': u'ia',
    u'term': u'2017-2018',
    u'type': u'member'}],
  u'sources': [{u'url': u'https://www.legis.iowa.gov/legislators/legislator?ga=88&personID=10733'}],
  u'state': u'ia',
  u'suffix': u'',
  u'updated_at': u'2019-01-13 06:06:23',
  u'url': u'https://www.legis.iowa.gov/legislators/legislator?ga=88&personID=10733'},
 {u'active': True,
  u'all_ids': [u'IAL000044', u'IAL000216'],
  u'chamber': u'upper',
  u'country': u'us',
  u'created_at': u'2018-10-18 14:41:59',
  u'district': u'47',
  u'email': u'roby.smith@legis.iowa.gov',
  u'first_name': u'Roby',
  u'full_name': u'Roby Smith',
  u'id': u'IAL000044',
  u'last_name': u'Smith',
  u'leg_id': u'IAL000044',
  u'level': u'state',
  u'middle_name': u'',
  u'offices': [{u'address': u'2036 E 48th St, Davenport, IA 52807',
    u'email': None,
    u'fax': None,
    u'name': u'District Office',
    u'phone': u'563-386-0179',
    u'type': u'district'},
   {u'address': None,
    u'email': u'roby.smith@legis.iowa.gov',
    u'fax': None,
    u'name': u'Capitol Office',
    u'phone': u'515-281-3371',
    u'type': u'capitol'}],
  u'old_roles': {},
  u'party': u'Republican',
  u'photo_url': u'https://www.legis.iowa.gov/photo?action=getPhoto&ga=2019-2020&pid=9386',
  u'roles': [{u'chamber': u'upper',
    u'district': u'47',
    u'end_date': None,
    u'party': u'Republican',
    u'start_date': None,
    u'state': u'ia',
    u'term': u'2017-2018',
    u'type': u'member'}],
  u'sources': [{u'url': u'https://www.legis.iowa.gov/legislators/legislator?ga=88&personID=9386'}],
  u'state': u'ia',
  u'suffix': u'',
  u'updated_at': u'2019-01-13 06:06:24',
  u'url': u'https://www.legis.iowa.gov/legislators/legislator?ga=88&personID=9386'},
 {u'active': True,
  u'all_ids': [u'IAL000134', u'IAL000309'],
  u'chamber': u'upper',
  u'country': u'us',
  u'created_at': u'2018-10-18 14:41:59',
  u'district': u'35',
  u'email': u'todd.taylor@legis.iowa.gov',
  u'first_name': u'Todd',
  u'full_name': u'Todd E. Taylor',
  u'id': u'IAL000134',
  u'last_name': u'Taylor',
  u'leg_id': u'IAL000134',
  u'level': u'state',
  u'middle_name': u'',
  u'offices': [{u'address': u'1416 A Ave NW, Cedar Rapids, IA 52405',
    u'email': None,
    u'fax': None,
    u'name': u'District Office',
    u'phone': None,
    u'type': u'district'},
   {u'address': None,
    u'email': u'todd.taylor@legis.iowa.gov',
    u'fax': None,
    u'name': u'Capitol Office',
    u'phone': u'515-281-3371',
    u'type': u'capitol'}],
  u'old_roles': {},
  u'party': u'Democratic',
  u'photo_url': u'https://www.legis.iowa.gov/photo?action=getPhoto&ga=2019-2020&pid=54',
  u'roles': [{u'chamber': u'upper',
    u'district': u'35',
    u'end_date': None,
    u'party': u'Democratic',
    u'start_date': None,
    u'state': u'ia',
    u'term': u'2017-2018',
    u'type': u'member'}],
  u'sources': [{u'url': u'https://www.legis.iowa.gov/legislators/legislator?ga=88&personID=54'}],
  u'state': u'ia',
  u'suffix': u'',
  u'updated_at': u'2019-01-13 06:06:19',
  u'url': u'https://www.legis.iowa.gov/legislators/legislator?ga=88&personID=54'},
 {u'active': True,
  u'all_ids': [u'IAL000535'],
  u'chamber': u'upper',
  u'country': u'us',
  u'created_at': u'2018-10-18 14:41:59',
  u'district': u'36',
  u'email': u'jeff.edler@legis.iowa.gov',
  u'first_name': u'Jeff',
  u'full_name': u'Jeff Edler',
  u'id': u'IAL000535',
  u'last_name': u'Edler',
  u'leg_id': u'IAL000535',
  u'level': u'state',
  u'middle_name': u'',
  u'offices': [{u'address': u'1554 - 200th St, State Center, IA 50247',
    u'email': None,
    u'fax': None,
    u'name': u'District Office',
    u'phone': None,
    u'type': u'district'},
   {u'address': None,
    u'email': u'jeff.edler@legis.iowa.gov',
    u'fax': None,
    u'name': u'Capitol Office',
    u'phone': u'515-281-3371',
    u'type': u'capitol'}],
  u'old_roles': {},
  u'party': u'Republican',
  u'photo_url': u'https://www.legis.iowa.gov/photo?action=getPhoto&ga=2019-2020&pid=18076',
  u'roles': [{u'chamber': u'upper',
    u'district': u'36',
    u'end_date': None,
    u'party': u'Republican',
    u'start_date': None,
    u'state': u'ia',
    u'term': u'2017-2018',
    u'type': u'member'}],
  u'sources': [{u'url': u'https://www.legis.iowa.gov/legislators/legislator?ga=88&personID=18076'}],
  u'state': u'ia',
  u'suffix': u'',
  u'updated_at': u'2019-01-13 06:06:20',
  u'url': u'https://www.legis.iowa.gov/legislators/legislator?ga=88&personID=18076'},
 {u'active': True,
  u'all_ids': [u'IAL000038', u'IAL000208', u'IAL000484'],
  u'chamber': u'upper',
  u'country': u'us',
  u'created_at': u'2018-10-18 14:42:00',
  u'district': u'23',
  u'email': u'herman.quirmbach@legis.iowa.gov',
  u'first_name': u'Herman',
  u'full_name': u'Herman C. Quirmbach',
  u'id': u'IAL000038',
  u'last_name': u'Quirmbach',
  u'leg_id': u'IAL000038',
  u'level': u'state',
  u'middle_name': u'',
  u'offices': [{u'address': u'1002 Jarrett Circle, Ames, IA 50014',
    u'email': None,
    u'fax': None,
    u'name': u'District Office',
    u'phone': u'515-292-8984',
    u'type': u'district'},
   {u'address': None,
    u'email': u'herman.quirmbach@legis.iowa.gov',
    u'fax': None,
    u'name': u'Capitol Office',
    u'phone': u'515-281-3371',
    u'type': u'capitol'}],
  u'old_roles': {},
  u'party': u'Democratic',
  u'photo_url': u'https://www.legis.iowa.gov/photo?action=getPhoto&ga=2019-2020&pid=161',
  u'roles': [{u'chamber': u'upper',
    u'district': u'23',
    u'end_date': None,
    u'party': u'Democratic',
    u'start_date': None,
    u'state': u'ia',
    u'term': u'2017-2018',
    u'type': u'member'}],
  u'sources': [{u'url': u'https://www.legis.iowa.gov/legislators/legislator?ga=88&personID=161'}],
  u'state': u'ia',
  u'suffix': u'',
  u'updated_at': u'2019-01-13 06:06:25',
  u'url': u'https://www.legis.iowa.gov/legislators/legislator?ga=88&personID=161'},
 {u'active': True,
  u'all_ids': [u'IAL000005'],
  u'chamber': u'upper',
  u'country': u'us',
  u'created_at': u'2018-10-18 14:42:00',
  u'district': u'24',
  u'email': u'jerry.behn@legis.iowa.gov',
  u'first_name': u'Jerry',
  u'full_name': u'Jerry Behn',
  u'id': u'IAL000005',
  u'last_name': u'Behn',
  u'leg_id': u'IAL000005',
  u'level': u'state',
  u'middle_name': u'',
  u'offices': [{u'address': u'1313 Quill Ave, Boone, IA 50036',
    u'email': None,
    u'fax': None,
    u'name': u'District Office',
    u'phone': u'515-432-7327',
    u'type': u'district'},
   {u'address': None,
    u'email': u'jerry.behn@legis.iowa.gov',
    u'fax': None,
    u'name': u'Capitol Office',
    u'phone': u'515-281-3371',
    u'type': u'capitol'}],
  u'old_roles': {},
  u'party': u'Republican',
  u'photo_url': u'https://www.legis.iowa.gov/photo?action=getPhoto&ga=2019-2020&pid=140',
  u'roles': [{u'chamber': u'upper',
    u'district': u'24',
    u'end_date': None,
    u'party': u'Republican',
    u'start_date': None,
    u'state': u'ia',
    u'term': u'2017-2018',
    u'type': u'member'}],
  u'sources': [{u'url': u'https://www.legis.iowa.gov/legislators/legislator?ga=88&personID=140'}],
  u'state': u'ia',
  u'suffix': u'',
  u'updated_at': u'2019-01-13 06:06:21',
  u'url': u'https://www.legis.iowa.gov/legislators/legislator?ga=88&personID=140'},
 {u'active': True,
  u'all_ids': [u'IAL000499'],
  u'chamber': u'upper',
  u'country': u'us',
  u'created_at': u'2018-10-18 14:42:00',
  u'district': u'5',
  u'email': u'tim.kraayenbrink@legis.iowa.gov',
  u'first_name': u'Tim',
  u'full_name': u'Tim Kraayenbrink',
  u'id': u'IAL000499',
  u'last_name': u'Kraayenbrink',
  u'leg_id': u'IAL000499',
  u'level': u'state',
  u'middle_name': u'',
  u'offices': [{u'address': u'1561 National Ave, Fort Dodge, IA 50501',
    u'email': None,
    u'fax': None,
    u'name': u'District Office',
    u'phone': u'515-576-0417',
    u'type': u'district'},
   {u'address': None,
    u'email': u'tim.kraayenbrink@legis.iowa.gov',
    u'fax': None,
    u'name': u'Capitol Office',
    u'phone': u'515-281-3371',
    u'type': u'capitol'}],
  u'old_roles': {},
  u'party': u'Republican',
  u'photo_url': u'https://www.legis.iowa.gov/photo?action=getPhoto&ga=2019-2020&pid=14812',
  u'roles': [{u'chamber': u'upper',
    u'district': u'5',
    u'end_date': None,
    u'party': u'Republican',
    u'start_date': None,
    u'state': u'ia',
    u'term': u'2017-2018',
    u'type': u'member'}],
  u'sources': [{u'url': u'https://www.legis.iowa.gov/legislators/legislator?ga=88&personID=14812'}],
  u'state': u'ia',
  u'suffix': u'',
  u'updated_at': u'2019-01-13 06:06:21',
  u'url': u'https://www.legis.iowa.gov/legislators/legislator?ga=88&personID=14812'},
 {u'active': True,
  u'all_ids': [u'IAL000530'],
  u'chamber': u'upper',
  u'country': u'us',
  u'created_at': u'2018-10-18 14:42:01',
  u'district': u'45',
  u'email': u'jim.lykam@legis.iowa.gov',
  u'first_name': u'Jim',
  u'full_name': u'Jim Lykam',
  u'id': u'IAL000530',
  u'last_name': u'Lykam',
  u'leg_id': u'IAL000530',
  u'level': u'state',
  u'middle_name': u'',
  u'offices': [{u'address': u'2906 W 35th St, Davenport, IA 52806',
    u'email': None,
    u'fax': None,
    u'name': u'District Office',
    u'phone': u'563-391-1919',
    u'type': u'district'},
   {u'address': None,
    u'email': u'jim.lykam@legis.iowa.gov',
    u'fax': None,
    u'name': u'Capitol Office',
    u'phone': u'515-281-3371',
    u'type': u'capitol'}],
  u'old_roles': {},
  u'party': u'Democratic',
  u'photo_url': u'https://www.legis.iowa.gov/photo?action=getPhoto&ga=2019-2020&pid=246',
  u'roles': [{u'chamber': u'upper',
    u'district': u'45',
    u'end_date': None,
    u'party': u'Democratic',
    u'start_date': None,
    u'state': u'ia',
    u'term': u'2017-2018',
    u'type': u'member'}],
  u'sources': [{u'url': u'https://www.legis.iowa.gov/legislators/legislator?ga=88&personID=246'}],
  u'state': u'ia',
  u'suffix': u'',
  u'updated_at': u'2019-01-13 06:06:28',
  u'url': u'https://www.legis.iowa.gov/legislators/legislator?ga=88&personID=246'},
 {u'active': True,
  u'all_ids': [u'IAL000033', u'IAL000204'],
  u'chamber': u'upper',
  u'country': u'us',
  u'created_at': u'2018-10-18 14:42:04',
  u'district': u'38',
  u'email': u'tim.kapucian@legis.iowa.gov',
  u'first_name': u'Tim',
  u'full_name': u'Tim L. Kapucian',
  u'id': u'IAL000033',
  u'last_name': u'Kapucian',
  u'leg_id': u'IAL000033',
  u'level': u'state',
  u'middle_name': u'',
  u'offices': [{u'address': u'1275 - 69th St, Keystone, IA 52249',
    u'email': None,
    u'fax': None,
    u'name': u'District Office',
    u'phone': None,
    u'type': u'district'},
   {u'address': None,
    u'email': u'tim.kapucian@legis.iowa.gov',
    u'fax': None,
    u'name': u'Capitol Office',
    u'phone': u'515-281-3371',
    u'type': u'capitol'}],
  u'old_roles': {},
  u'party': u'Republican',
  u'photo_url': u'https://www.legis.iowa.gov/photo?action=getPhoto&ga=2019-2020&pid=6567',
  u'roles': [{u'chamber': u'upper',
    u'district': u'38',
    u'end_date': None,
    u'party': u'Republican',
    u'start_date': None,
    u'state': u'ia',
    u'term': u'2017-2018',
    u'type': u'member'}],
  u'sources': [{u'url': u'https://www.legis.iowa.gov/legislators/legislator?ga=88&personID=6567'}],
  u'state': u'ia',
  u'suffix': u'',
  u'updated_at': u'2019-01-13 06:06:28',
  u'url': u'https://www.legis.iowa.gov/legislators/legislator?ga=88&personID=6567'},
 {u'active': True,
  u'all_ids': [u'IAL000115', u'IAL000207'],
  u'chamber': u'upper',
  u'country': u'us',
  u'created_at': u'2018-10-18 14:42:05',
  u'district': u'18',
  u'email': u'janet.petersen@legis.iowa.gov',
  u'first_name': u'Janet',
  u'full_name': u'Janet Petersen',
  u'id': u'IAL000115',
  u'last_name': u'Petersen',
  u'leg_id': u'IAL000115',
  u'level': u'state',
  u'middle_name': u'',
  u'offices': [{u'address': u'4300 Beaver Hills Dr, Des Moines, IA 50310',
    u'email': None,
    u'fax': None,
    u'name': u'District Office',
    u'phone': None,
    u'type': u'district'},
   {u'address': None,
    u'email': u'janet.petersen@legis.iowa.gov',
    u'fax': None,
    u'name': u'Capitol Office',
    u'phone': u'515-281-3371',
    u'type': u'capitol'}],
  u'old_roles': {},
  u'party': u'Democratic',
  u'photo_url': u'https://www.legis.iowa.gov/photo?action=getPhoto&ga=2019-2020&pid=72',
  u'roles': [{u'chamber': u'upper',
    u'district': u'18',
    u'end_date': None,
    u'party': u'Democratic',
    u'start_date': None,
    u'state': u'ia',
    u'term': u'2017-2018',
    u'type': u'member'}],
  u'sources': [{u'url': u'https://www.legis.iowa.gov/legislators/legislator?ga=88&personID=72'}],
  u'state': u'ia',
  u'suffix': u'',
  u'updated_at': u'2019-01-13 06:06:21',
  u'url': u'https://www.legis.iowa.gov/legislators/legislator?ga=88&personID=72'},
 {u'active': True,
  u'all_ids': [u'IAL000125', u'IAL000298', u'IAL000497'],
  u'chamber': u'upper',
  u'country': u'us',
  u'created_at': u'2018-10-18 14:42:06',
  u'district': u'9',
  u'email': u'jason.schultz@legis.iowa.gov',
  u'first_name': u'Jason',
  u'full_name': u'Jason Schultz',
  u'id': u'IAL000125',
  u'last_name': u'Schultz',
  u'leg_id': u'IAL000125',
  u'level': u'state',
  u'middle_name': u'',
  u'offices': [{u'address': u'611 Cedar St, PO Box 70, Schleswig, IA 51461',
    u'email': None,
    u'fax': None,
    u'name': u'District Office',
    u'phone': None,
    u'type': u'district'},
   {u'address': None,
    u'email': u'jason.schultz@legis.iowa.gov',
    u'fax': None,
    u'name': u'Capitol Office',
    u'phone': u'515-281-3371',
    u'type': u'capitol'}],
  u'old_roles': {},
  u'party': u'Republican',
  u'photo_url': u'https://www.legis.iowa.gov/photo?action=getPhoto&ga=2019-2020&pid=6588',
  u'roles': [{u'chamber': u'upper',
    u'district': u'9',
    u'end_date': None,
    u'party': u'Republican',
    u'start_date': None,
    u'state': u'ia',
    u'term': u'2017-2018',
    u'type': u'member'}],
  u'sources': [{u'url': u'https://www.legis.iowa.gov/legislators/legislator?ga=88&personID=6588'}],
  u'state': u'ia',
  u'suffix': u'',
  u'updated_at': u'2019-01-13 06:06:25',
  u'url': u'https://www.legis.iowa.gov/legislators/legislator?ga=88&personID=6588'},
 {u'active': True,
  u'all_ids': [u'IAL000219'],
  u'chamber': u'upper',
  u'country': u'us',
  u'created_at': u'2018-10-18 14:42:07',
  u'district': u'42',
  u'email': u'rich.taylor@legis.iowa.gov',
  u'first_name': u'Rich',
  u'full_name': u'Rich Taylor',
  u'id': u'IAL000219',
  u'last_name': u'Taylor',
  u'leg_id': u'IAL000219',
  u'level': u'state',
  u'middle_name': u'',
  u'offices': [{u'address': u'2667 Iowa Ave, Mt Pleasant, IA 52641',
    u'email': None,
    u'fax': None,
    u'name': u'District Office',
    u'phone': None,
    u'type': u'district'},
   {u'address': None,
    u'email': u'rich.taylor@legis.iowa.gov',
    u'fax': None,
    u'name': u'Capitol Office',
    u'phone': u'515-281-3371',
    u'type': u'capitol'}],
  u'old_roles': {},
  u'party': u'Democratic',
  u'photo_url': u'https://www.legis.iowa.gov/photo?action=getPhoto&ga=2019-2020&pid=10735',
  u'roles': [{u'chamber': u'upper',
    u'district': u'42',
    u'end_date': None,
    u'party': u'Democratic',
    u'start_date': None,
    u'state': u'ia',
    u'term': u'2017-2018',
    u'type': u'member'}],
  u'sources': [{u'url': u'https://www.legis.iowa.gov/legislators/legislator?ga=88&personID=10735'}],
  u'state': u'ia',
  u'suffix': u'',
  u'updated_at': u'2019-01-13 06:06:22',
  u'url': u'https://www.legis.iowa.gov/legislators/legislator?ga=88&personID=10735'},
 {u'active': True,
  u'all_ids': [u'IAL000544'],
  u'chamber': u'upper',
  u'country': u'us',
  u'created_at': u'2018-10-18 14:42:08',
  u'district': u'26',
  u'email': u'waylon.brown@legis.iowa.gov',
  u'first_name': u'Waylon',
  u'full_name': u'Waylon Brown',
  u'id': u'IAL000544',
  u'last_name': u'Brown',
  u'leg_id': u'IAL000544',
  u'level': u'state',
  u'middle_name': u'',
  u'offices': [{u'address': u'109 S Summer St, St Ansgar, IA 50472',
    u'email': None,
    u'fax': None,
    u'name': u'District Office',
    u'phone': None,
    u'type': u'district'},
   {u'address': None,
    u'email': u'waylon.brown@legis.iowa.gov',
    u'fax': None,
    u'name': u'Capitol Office',
    u'phone': u'515-281-3371',
    u'type': u'capitol'}],
  u'old_roles': {},
  u'party': u'Republican',
  u'photo_url': u'https://www.legis.iowa.gov/photo?action=getPhoto&ga=2019-2020&pid=18074',
  u'roles': [{u'chamber': u'upper',
    u'district': u'26',
    u'end_date': None,
    u'party': u'Republican',
    u'start_date': None,
    u'state': u'ia',
    u'term': u'2017-2018',
    u'type': u'member'}],
  u'sources': [{u'url': u'https://www.legis.iowa.gov/legislators/legislator?ga=88&personID=18074'}],
  u'state': u'ia',
  u'suffix': u'',
  u'updated_at': u'2019-01-13 06:06:19',
  u'url': u'https://www.legis.iowa.gov/legislators/legislator?ga=88&personID=18074'},
 {u'active': True,
  u'all_ids': [u'IAL000503'],
  u'chamber': u'upper',
  u'country': u'us',
  u'created_at': u'2018-10-18 14:42:08',
  u'district': u'39',
  u'email': u'kevin.kinney@legis.iowa.gov',
  u'first_name': u'Kevin',
  u'full_name': u'Kevin Kinney',
  u'id': u'IAL000503',
  u'last_name': u'Kinney',
  u'leg_id': u'IAL000503',
  u'level': u'state',
  u'middle_name': u'',
  u'offices': [{u'address': u'4321 Calkins Ave SW, Oxford, IA 52322',
    u'email': None,
    u'fax': None,
    u'name': u'District Office',
    u'phone': u'319-631-4667',
    u'type': u'district'},
   {u'address': None,
    u'email': u'kevin.kinney@legis.iowa.gov',
    u'fax': None,
    u'name': u'Capitol Office',
    u'phone': u'515-281-3371',
    u'type': u'capitol'}],
  u'old_roles': {},
  u'party': u'Democratic',
  u'photo_url': u'https://www.legis.iowa.gov/photo?action=getPhoto&ga=2019-2020&pid=14817',
  u'roles': [{u'chamber': u'upper',
    u'district': u'39',
    u'end_date': None,
    u'party': u'Democratic',
    u'start_date': None,
    u'state': u'ia',
    u'term': u'2017-2018',
    u'type': u'member'}],
  u'sources': [{u'url': u'https://www.legis.iowa.gov/legislators/legislator?ga=88&personID=14817'}],
  u'state': u'ia',
  u'suffix': u'',
  u'updated_at': u'2019-01-13 06:06:30',
  u'url': u'https://www.legis.iowa.gov/legislators/legislator?ga=88&personID=14817'},
 {u'active': True,
  u'all_ids': [u'IAL000215'],
  u'chamber': u'upper',
  u'country': u'us',
  u'created_at': u'2018-10-18 14:42:09',
  u'district': u'14',
  u'email': u'amy.sinclair@legis.iowa.gov',
  u'first_name': u'Amy',
  u'full_name': u'Amy Sinclair',
  u'id': u'IAL000215',
  u'last_name': u'Sinclair',
  u'leg_id': u'IAL000215',
  u'level': u'state',
  u'middle_name': u'',
  u'offices': [{u'address': u'1255 King Rd, Allerton, IA 50008',
    u'email': None,
    u'fax': None,
    u'name': u'District Office',
    u'phone': None,
    u'type': u'district'},
   {u'address': None,
    u'email': u'amy.sinclair@legis.iowa.gov',
    u'fax': None,
    u'name': u'Capitol Office',
    u'phone': u'515-281-3371',
    u'type': u'capitol'}],
  u'old_roles': {},
  u'party': u'Republican',
  u'photo_url': u'https://www.legis.iowa.gov/photo?action=getPhoto&ga=2019-2020&pid=10729',
  u'roles': [{u'chamber': u'upper',
    u'district': u'14',
    u'end_date': None,
    u'party': u'Republican',
    u'start_date': None,
    u'state': u'ia',
    u'term': u'2017-2018',
    u'type': u'member'}],
  u'sources': [{u'url': u'https://www.legis.iowa.gov/legislators/legislator?ga=88&personID=10729'}],
  u'state': u'ia',
  u'suffix': u'',
  u'updated_at': u'2019-01-13 06:06:26',
  u'url': u'https://www.legis.iowa.gov/legislators/legislator?ga=88&personID=10729'},
 {u'active': True,
  u'all_ids': [u'IAL000020'],
  u'chamber': u'upper',
  u'country': u'us',
  u'created_at': u'2018-10-18 14:42:11',
  u'district': u'2',
  u'email': u'randy.feenstra@legis.iowa.gov',
  u'first_name': u'Randy',
  u'full_name': u'Randy Feenstra',
  u'id': u'IAL000020',
  u'last_name': u'Feenstra',
  u'leg_id': u'IAL000020',
  u'level': u'state',
  u'middle_name': u'',
  u'offices': [{u'address': u'641 Second St, Hull, IA 51239',
    u'email': None,
    u'fax': None,
    u'name': u'District Office',
    u'phone': u'712-439-1244',
    u'type': u'district'},
   {u'address': None,
    u'email': u'randy.feenstra@legis.iowa.gov',
    u'fax': None,
    u'name': u'Capitol Office',
    u'phone': u'515-281-3371',
    u'type': u'capitol'}],
  u'old_roles': {},
  u'party': u'Republican',
  u'photo_url': u'https://www.legis.iowa.gov/photo?action=getPhoto&ga=2019-2020&pid=6565',
  u'roles': [{u'chamber': u'upper',
    u'district': u'2',
    u'end_date': None,
    u'party': u'Republican',
    u'start_date': None,
    u'state': u'ia',
    u'term': u'2017-2018',
    u'type': u'member'}],
  u'sources': [{u'url': u'https://www.legis.iowa.gov/legislators/legislator?ga=88&personID=6565'}],
  u'state': u'ia',
  u'suffix': u'',
  u'updated_at': u'2019-01-13 06:06:22',
  u'url': u'https://www.legis.iowa.gov/legislators/legislator?ga=88&personID=6565'},
 {u'active': True,
  u'all_ids': [u'IAL000515'],
  u'chamber': u'upper',
  u'country': u'us',
  u'created_at': u'2018-10-18 14:42:11',
  u'district': u'11',
  u'email': u'tom.shipley@legis.iowa.gov',
  u'first_name': u'Tom',
  u'full_name': u'Tom Shipley',
  u'id': u'IAL000515',
  u'last_name': u'Shipley',
  u'leg_id': u'IAL000515',
  u'level': u'state',
  u'middle_name': u'',
  u'offices': [{u'address': u'2425 Birch Ave, Nodaway, IA 50857',
    u'email': None,
    u'fax': None,
    u'name': u'District Office',
    u'phone': u'712-785-3583',
    u'type': u'district'},
   {u'address': None,
    u'email': u'tom.shipley@legis.iowa.gov',
    u'fax': None,
    u'name': u'Capitol Office',
    u'phone': u'515-281-3371',
    u'type': u'capitol'}],
  u'old_roles': {},
  u'party': u'Republican',
  u'photo_url': u'https://www.legis.iowa.gov/photo?action=getPhoto&ga=2019-2020&pid=14814',
  u'roles': [{u'chamber': u'upper',
    u'district': u'11',
    u'end_date': None,
    u'party': u'Republican',
    u'start_date': None,
    u'state': u'ia',
    u'term': u'2017-2018',
    u'type': u'member'}],
  u'sources': [{u'url': u'https://www.legis.iowa.gov/legislators/legislator?ga=88&personID=14814'}],
  u'state': u'ia',
  u'suffix': u'',
  u'updated_at': u'2019-01-13 06:06:24',
  u'url': u'https://www.legis.iowa.gov/legislators/legislator?ga=88&personID=14814'},
 {u'active': True,
  u'all_ids': [u'IAL000509'],
  u'chamber': u'upper',
  u'country': u'us',
  u'created_at': u'2018-10-18 14:42:12',
  u'district': u'15',
  u'email': u'zach.nunn@legis.iowa.gov',
  u'first_name': u'Zach',
  u'full_name': u'Zach Nunn',
  u'id': u'IAL000509',
  u'last_name': u'Nunn',
  u'leg_id': u'IAL000509',
  u'level': u'state',
  u'middle_name': u'',
  u'offices': [{u'address': u'PO Box 105, Altoona, IA 50009',
    u'email': None,
    u'fax': None,
    u'name': u'District Office',
    u'phone': None,
    u'type': u'district'},
   {u'address': None,
    u'email': u'zach.nunn@legis.iowa.gov',
    u'fax': None,
    u'name': u'Capitol Office',
    u'phone': u'515-281-3371',
    u'type': u'capitol'}],
  u'old_roles': {},
  u'party': u'Republican',
  u'photo_url': u'https://www.legis.iowa.gov/photo?action=getPhoto&ga=2019-2020&pid=14803',
  u'roles': [{u'chamber': u'upper',
    u'district': u'15',
    u'end_date': None,
    u'party': u'Republican',
    u'start_date': None,
    u'state': u'ia',
    u'term': u'2017-2018',
    u'type': u'member'}],
  u'sources': [{u'url': u'https://www.legis.iowa.gov/legislators/legislator?ga=88&personID=14803'}],
  u'state': u'ia',
  u'suffix': u'',
  u'updated_at': u'2019-01-13 06:06:19',
  u'url': u'https://www.legis.iowa.gov/legislators/legislator?ga=88&personID=14803'},
 {u'active': True,
  u'all_ids': [u'IAL000548'],
  u'chamber': u'upper',
  u'country': u'us',
  u'created_at': u'2018-10-18 14:42:12',
  u'district': u'46',
  u'email': u'mark.lofgren@legis.iowa.gov',
  u'first_name': u'Mark S.',
  u'full_name': u'Mark S. Lofgren',
  u'id': u'IAL000548',
  u'last_name': u'Lofgren',
  u'leg_id': u'IAL000548',
  u'level': u'state',
  u'middle_name': u'',
  u'offices': [{u'address': u'3025 Provence Ln, Muscatine, IA 52761',
    u'email': None,
    u'fax': None,
    u'name': u'District Office',
    u'phone': u'563-272-8683',
    u'type': u'district'},
   {u'address': None,
    u'email': u'mark.lofgren@legis.iowa.gov',
    u'fax': None,
    u'name': u'Capitol Office',
    u'phone': u'515-281-3371',
    u'type': u'capitol'}],
  u'old_roles': {},
  u'party': u'Republican',
  u'photo_url': u'https://www.legis.iowa.gov/photo?action=getPhoto&ga=2019-2020&pid=9406',
  u'roles': [{u'chamber': u'upper',
    u'district': u'46',
    u'end_date': None,
    u'party': u'Republican',
    u'start_date': None,
    u'state': u'ia',
    u'term': u'2017-2018',
    u'type': u'member'}],
  u'sources': [{u'url': u'https://www.legis.iowa.gov/legislators/legislator?ga=88&personID=9406'}],
  u'state': u'ia',
  u'suffix': u'',
  u'updated_at': u'2019-01-13 06:06:26',
  u'url': u'https://www.legis.iowa.gov/legislators/legislator?ga=88&personID=9406'},
 {u'active': True,
  u'all_ids': [u'IAL000210'],
  u'chamber': u'upper',
  u'country': u'us',
  u'created_at': u'2018-10-18 14:42:13',
  u'district': u'40',
  u'email': u'ken.rozenboom@legis.iowa.gov',
  u'first_name': u'Ken',
  u'full_name': u'Ken Rozenboom',
  u'id': u'IAL000210',
  u'last_name': u'Rozenboom',
  u'leg_id': u'IAL000210',
  u'level': u'state',
  u'middle_name': u'',
  u'offices': [{u'address': u'2200 Oxford Ave, Oskaloosa, IA 52577',
    u'email': None,
    u'fax': None,
    u'name': u'District Office',
    u'phone': None,
    u'type': u'district'},
   {u'address': None,
    u'email': u'ken.rozenboom@legis.iowa.gov',
    u'fax': None,
    u'name': u'Capitol Office',
    u'phone': u'515-281-3371',
    u'type': u'capitol'}],
  u'old_roles': {},
  u'party': u'Republican',
  u'photo_url': u'https://www.legis.iowa.gov/photo?action=getPhoto&ga=2019-2020&pid=10731',
  u'roles': [{u'chamber': u'upper',
    u'district': u'40',
    u'end_date': None,
    u'party': u'Republican',
    u'start_date': None,
    u'state': u'ia',
    u'term': u'2017-2018',
    u'type': u'member'}],
  u'sources': [{u'url': u'https://www.legis.iowa.gov/legislators/legislator?ga=88&personID=10731'}],
  u'state': u'ia',
  u'suffix': u'',
  u'updated_at': u'2019-01-13 06:06:22',
  u'url': u'https://www.legis.iowa.gov/legislators/legislator?ga=88&personID=10731'},
 {u'active': True,
  u'all_ids': [u'IAL000556'],
  u'chamber': u'upper',
  u'country': u'us',
  u'created_at': u'2018-10-18 14:42:14',
  u'district': u'25',
  u'email': u'annette.sweeney@legis.iowa.gov',
  u'first_name': u'Annette',
  u'full_name': u'Annette Sweeney',
  u'id': u'IAL000556',
  u'last_name': u'Sweeney',
  u'leg_id': u'IAL000556',
  u'level': u'state',
  u'middle_name': u'',
  u'offices': [{u'address': u'21547 Hwy S27, Alden, IA 50006',
    u'email': None,
    u'fax': None,
    u'name': u'District Office',
    u'phone': None,
    u'type': u'district'},
   {u'address': None,
    u'email': u'annette.sweeney@legis.iowa.gov',
    u'fax': None,
    u'name': u'Capitol Office',
    u'phone': u'515-281-3371',
    u'type': u'capitol'}],
  u'old_roles': {},
  u'party': u'Republican',
  u'photo_url': u'https://www.legis.iowa.gov/photo?action=getPhoto&ga=2019-2020&pid=6585',
  u'roles': [{u'chamber': u'upper',
    u'district': u'25',
    u'end_date': None,
    u'party': u'Republican',
    u'start_date': None,
    u'state': u'ia',
    u'term': u'2017-2018',
    u'type': u'member'}],
  u'sources': [{u'url': u'https://www.legis.iowa.gov/legislators/legislator?ga=88&personID=6585'}],
  u'state': u'ia',
  u'suffix': u'',
  u'updated_at': u'2019-01-13 06:06:27',
  u'url': u'https://www.legis.iowa.gov/legislators/legislator?ga=88&personID=6585'},
 {u'active': True,
  u'all_ids': [u'IAL000196'],
  u'chamber': u'upper',
  u'country': u'us',
  u'created_at': u'2018-10-18 14:42:16',
  u'district': u'4',
  u'email': u'dennis.guth@legis.iowa.gov',
  u'first_name': u'Dennis',
  u'full_name': u'Dennis Guth',
  u'id': u'IAL000196',
  u'last_name': u'Guth',
  u'leg_id': u'IAL000196',
  u'level': u'state',
  u'middle_name': u'',
  u'offices': [{u'address': u'1770 Taft Ave, Klemme, IA 50449',
    u'email': None,
    u'fax': None,
    u'name': u'District Office',
    u'phone': None,
    u'type': u'district'},
   {u'address': None,
    u'email': u'dennis.guth@legis.iowa.gov',
    u'fax': None,
    u'name': u'Capitol Office',
    u'phone': u'515-281-3371',
    u'type': u'capitol'}],
  u'old_roles': {},
  u'party': u'Republican',
  u'photo_url': u'https://www.legis.iowa.gov/photo?action=getPhoto&ga=2019-2020&pid=10726',
  u'roles': [{u'chamber': u'upper',
    u'district': u'4',
    u'end_date': None,
    u'party': u'Republican',
    u'start_date': None,
    u'state': u'ia',
    u'term': u'2017-2018',
    u'type': u'member'}],
  u'sources': [{u'url': u'https://www.legis.iowa.gov/legislators/legislator?ga=88&personID=10726'}],
  u'state': u'ia',
  u'suffix': u'',
  u'updated_at': u'2019-01-13 06:06:21',
  u'url': u'https://www.legis.iowa.gov/legislators/legislator?ga=88&personID=10726'},
 {u'active': True,
  u'all_ids': [u'IAL000017', u'IAL000191', u'IAL000487', u'IAL000489'],
  u'chamber': u'upper',
  u'country': u'us',
  u'created_at': u'2018-10-18 14:42:16',
  u'district': u'31',
  u'email': u'bill.dotzler@legis.iowa.gov',
  u'first_name': u'William',
  u'full_name': u'William A. Dotzler Jr.',
  u'id': u'IAL000017',
  u'last_name': u'Dotzler',
  u'leg_id': u'IAL000017',
  u'level': u'state',
  u'middle_name': u'',
  u'offices': [{u'address': u'2837 Cedar Terrace Dr, Waterloo, IA 50702',
    u'email': None,
    u'fax': None,
    u'name': u'District Office',
    u'phone': u'319-296-2947',
    u'type': u'district'},
   {u'address': None,
    u'email': u'bill.dotzler@legis.iowa.gov',
    u'fax': None,
    u'name': u'Capitol Office',
    u'phone': u'515-281-3371',
    u'type': u'capitol'}],
  u'old_roles': {},
  u'party': u'Democratic',
  u'photo_url': u'https://www.legis.iowa.gov/photo?action=getPhoto&ga=2019-2020&pid=157',
  u'roles': [{u'chamber': u'upper',
    u'district': u'31',
    u'end_date': None,
    u'party': u'Democratic',
    u'start_date': None,
    u'state': u'ia',
    u'term': u'2017-2018',
    u'type': u'member'}],
  u'sources': [{u'url': u'https://www.legis.iowa.gov/legislators/legislator?ga=88&personID=157'}],
  u'state': u'ia',
  u'suffix': u'',
  u'updated_at': u'2019-01-13 06:06:21',
  u'url': u'https://www.legis.iowa.gov/legislators/legislator?ga=88&personID=157'},
 {u'active': True,
  u'all_ids': [u'IAL000048', u'IAL000220'],
  u'chamber': u'upper',
  u'country': u'us',
  u'created_at': u'2018-10-18 14:42:17',
  u'district': u'19',
  u'email': u'jack.whitver@legis.iowa.gov',
  u'first_name': u'Jack',
  u'full_name': u'Jack Whitver',
  u'id': u'IAL000048',
  u'last_name': u'Whitver',
  u'leg_id': u'IAL000048',
  u'level': u'state',
  u'middle_name': u'',
  u'offices': [{u'address': u'4019 NE Bellagio Cir, Ankeny, IA 50021',
    u'email': None,
    u'fax': None,
    u'name': u'District Office',
    u'phone': None,
    u'type': u'district'},
   {u'address': None,
    u'email': u'jack.whitver@legis.iowa.gov',
    u'fax': None,
    u'name': u'Capitol Office',
    u'phone': u'515-281-3371',
    u'type': u'capitol'}],
  u'old_roles': {},
  u'party': u'Republican',
  u'photo_url': u'https://www.legis.iowa.gov/photo?action=getPhoto&ga=2019-2020&pid=9768',
  u'roles': [{u'chamber': u'upper',
    u'district': u'19',
    u'end_date': None,
    u'party': u'Republican',
    u'start_date': None,
    u'state': u'ia',
    u'term': u'2017-2018',
    u'type': u'member'}],
  u'sources': [{u'url': u'https://www.legis.iowa.gov/legislators/legislator?ga=88&personID=9768'}],
  u'state': u'ia',
  u'suffix': u'',
  u'updated_at': u'2019-01-13 06:06:25',
  u'url': u'https://www.legis.iowa.gov/legislators/legislator?ga=88&personID=9768'},
 {u'active': True,
  u'all_ids': [u'IAL000211'],
  u'chamber': u'upper',
  u'country': u'us',
  u'created_at': u'2018-10-18 14:42:17',
  u'district': u'22',
  u'email': u'charles.schneider@legis.iowa.gov',
  u'first_name': u'Charles',
  u'full_name': u'Charles Schneider',
  u'id': u'IAL000211',
  u'last_name': u'Schneider',
  u'leg_id': u'IAL000211',
  u'level': u'state',
  u'middle_name': u'',
  u'offices': [{u'address': u'7887 Cody Dr, West Des Moines, IA 50266',
    u'email': None,
    u'fax': None,
    u'name': u'District Office',
    u'phone': None,
    u'type': u'district'},
   {u'address': None,
    u'email': u'charles.schneider@legis.iowa.gov',
    u'fax': None,
    u'name': u'Capitol Office',
    u'phone': u'515-281-3371',
    u'type': u'capitol'}],
  u'old_roles': {},
  u'party': u'Republican',
  u'photo_url': u'https://www.legis.iowa.gov/photo?action=getPhoto&ga=2019-2020&pid=10829',
  u'roles': [{u'chamber': u'upper',
    u'district': u'22',
    u'end_date': None,
    u'party': u'Republican',
    u'start_date': None,
    u'state': u'ia',
    u'term': u'2017-2018',
    u'type': u'member'}],
  u'sources': [{u'url': u'https://www.legis.iowa.gov/legislators/legislator?ga=88&personID=10829'}],
  u'state': u'ia',
  u'suffix': u'',
  u'updated_at': u'2019-01-13 06:06:29',
  u'url': u'https://www.legis.iowa.gov/legislators/legislator?ga=88&personID=10829'},
 {u'active': True,
  u'all_ids': [u'IAL000543', u'IAL000552'],
  u'chamber': u'upper',
  u'country': u'us',
  u'created_at': u'2018-10-18 14:42:18',
  u'district': u'3',
  u'email': u'jim.carlin@legis.iowa.gov',
  u'first_name': u'Jim',
  u'full_name': u'Jim Carlin',
  u'id': u'IAL000543',
  u'last_name': u'Carlin',
  u'leg_id': u'IAL000543',
  u'level': u'state',
  u'middle_name': u'',
  u'offices': [{u'address': u'43 Arlington Rd, Sioux City, IA 51106',
    u'email': None,
    u'fax': None,
    u'name': u'District Office',
    u'phone': None,
    u'type': u'district'},
   {u'address': None,
    u'email': u'jim.carlin@legis.iowa.gov',
    u'fax': None,
    u'name': u'Capitol Office',
    u'phone': u'515-281-3371',
    u'type': u'capitol'}],
  u'old_roles': {},
  u'party': u'Republican',
  u'photo_url': u'https://www.legis.iowa.gov/photo?action=getPhoto&ga=2019-2020&pid=18041',
  u'roles': [{u'chamber': u'upper',
    u'district': u'3',
    u'end_date': None,
    u'party': u'Republican',
    u'start_date': None,
    u'state': u'ia',
    u'term': u'2017-2018',
    u'type': u'member'}],
  u'sources': [{u'url': u'https://www.legis.iowa.gov/legislators/legislator?ga=88&personID=18041'}],
  u'state': u'ia',
  u'suffix': u'',
  u'updated_at': u'2019-01-13 06:06:18',
  u'url': u'https://www.legis.iowa.gov/legislators/legislator?ga=88&personID=18041'},
 {u'active': True,
  u'all_ids': [u'IAL000516'],
  u'chamber': u'upper',
  u'country': u'us',
  u'created_at': u'2018-10-18 14:42:18',
  u'district': u'17',
  u'email': u'tony.bisignano@legis.iowa.gov',
  u'first_name': u'Tony',
  u'full_name': u'Tony Bisignano',
  u'id': u'IAL000516',
  u'last_name': u'Bisignano',
  u'leg_id': u'IAL000516',
  u'level': u'state',
  u'middle_name': u'',
  u'offices': [{u'address': u'2618 E Leach Ave, Des Moines, IA 50320',
    u'email': None,
    u'fax': None,
    u'name': u'District Office',
    u'phone': None,
    u'type': u'district'},
   {u'address': None,
    u'email': u'tony.bisignano@legis.iowa.gov',
    u'fax': None,
    u'name': u'Capitol Office',
    u'phone': u'515-281-3371',
    u'type': u'capitol'}],
  u'old_roles': {},
  u'party': u'Democratic',
  u'photo_url': u'https://www.legis.iowa.gov/photo?action=getPhoto&ga=2019-2020&pid=906',
  u'roles': [{u'chamber': u'upper',
    u'district': u'17',
    u'end_date': None,
    u'party': u'Democratic',
    u'start_date': None,
    u'state': u'ia',
    u'term': u'2017-2018',
    u'type': u'member'}],
  u'sources': [{u'url': u'https://www.legis.iowa.gov/legislators/legislator?ga=88&personID=906'}],
  u'state': u'ia',
  u'suffix': u'',
  u'updated_at': u'2019-01-13 06:06:25',
  u'url': u'https://www.legis.iowa.gov/legislators/legislator?ga=88&personID=906'},
 {u'active': True,
  u'all_ids': [u'~not available~'],
  u'chamber': u'upper',
  u'country': u'us',
  u'created_at': u'2019-01-13 06:06:18',
  u'district': u'37',
  u'email': u'zach.wahls@legis.iowa.gov',
  u'first_name': u'Zach',
  u'full_name': u'Zach Wahls',
  u'id': u'~not available~',
  u'last_name': u'Wahls',
  u'leg_id': u'~not available~',
  u'level': u'state',
  u'middle_name': u'',
  u'offices': [{u'address': u'201 E 9th St #415, Coralville, IA 52241',
    u'email': None,
    u'fax': None,
    u'name': u'District Office',
    u'phone': None,
    u'type': u'district'},
   {u'address': None,
    u'email': u'zach.wahls@legis.iowa.gov',
    u'fax': None,
    u'name': u'Capitol Office',
    u'phone': u'515-281-3371',
    u'type': u'capitol'}],
  u'old_roles': {},
  u'party': u'Democratic',
  u'photo_url': u'https://www.legis.iowa.gov/photo?action=getPhoto&ga=2019-2020&pid=27002',
  u'roles': [{u'chamber': u'upper',
    u'district': u'37',
    u'end_date': None,
    u'party': u'Democratic',
    u'start_date': None,
    u'state': u'ia',
    u'term': u'2017-2018',
    u'type': u'member'}],
  u'sources': [{u'url': u'https://www.legis.iowa.gov/legislators/legislator?ga=88&personID=27002'}],
  u'state': u'ia',
  u'suffix': u'',
  u'updated_at': u'2019-01-13 06:06:18',
  u'url': u'https://www.legis.iowa.gov/legislators/legislator?ga=88&personID=27002'},
 {u'active': True,
  u'all_ids': [u'~not available~'],
  u'chamber': u'upper',
  u'country': u'us',
  u'created_at': u'2019-01-13 06:06:19',
  u'district': u'21',
  u'email': u'claire.celsi@legis.iowa.gov',
  u'first_name': u'Claire',
  u'full_name': u'Claire Celsi',
  u'id': u'~not available~',
  u'last_name': u'Celsi',
  u'leg_id': u'~not available~',
  u'level': u'state',
  u'middle_name': u'',
  u'offices': [{u'address': u'4400 EP True Pkwy #52, West Des Moines, IA 50265',
    u'email': None,
    u'fax': None,
    u'name': u'District Office',
    u'phone': u'515-462-0487',
    u'type': u'district'},
   {u'address': None,
    u'email': u'claire.celsi@legis.iowa.gov',
    u'fax': None,
    u'name': u'Capitol Office',
    u'phone': u'515-281-3371',
    u'type': u'capitol'}],
  u'old_roles': {},
  u'party': u'Democratic',
  u'photo_url': u'https://www.legis.iowa.gov/photo?action=getPhoto&ga=2019-2020&pid=27000',
  u'roles': [{u'chamber': u'upper',
    u'district': u'21',
    u'end_date': None,
    u'party': u'Democratic',
    u'start_date': None,
    u'state': u'ia',
    u'term': u'2017-2018',
    u'type': u'member'}],
  u'sources': [{u'url': u'https://www.legis.iowa.gov/legislators/legislator?ga=88&personID=27000'}],
  u'state': u'ia',
  u'suffix': u'',
  u'updated_at': u'2019-01-13 06:06:19',
  u'url': u'https://www.legis.iowa.gov/legislators/legislator?ga=88&personID=27000'},
 {u'active': True,
  u'all_ids': [u'~not available~'],
  u'chamber': u'upper',
  u'country': u'us',
  u'created_at': u'2019-01-13 06:06:22',
  u'district': u'7',
  u'email': u'jackie.smith@legis.iowa.gov',
  u'first_name': u'Jackie',
  u'full_name': u'Jackie Smith',
  u'id': u'~not available~',
  u'last_name': u'Smith',
  u'leg_id': u'~not available~',
  u'level': u'state',
  u'middle_name': u'',
  u'offices': [{u'address': u'2324 Mohawk Ct, Sioux City, IA 51104',
    u'email': None,
    u'fax': None,
    u'name': u'District Office',
    u'phone': u'712-898-0477',
    u'type': u'district'},
   {u'address': None,
    u'email': u'jackie.smith@legis.iowa.gov',
    u'fax': None,
    u'name': u'Capitol Office',
    u'phone': u'515-281-3371',
    u'type': u'capitol'}],
  u'old_roles': {},
  u'party': u'Democratic',
  u'photo_url': u'https://www.legis.iowa.gov/photo?action=getPhoto&ga=2019-2020&pid=26998',
  u'roles': [{u'chamber': u'upper',
    u'district': u'7',
    u'end_date': None,
    u'party': u'Democratic',
    u'start_date': None,
    u'state': u'ia',
    u'term': u'2017-2018',
    u'type': u'member'}],
  u'sources': [{u'url': u'https://www.legis.iowa.gov/legislators/legislator?ga=88&personID=26998'}],
  u'state': u'ia',
  u'suffix': u'',
  u'updated_at': u'2019-01-13 06:06:22',
  u'url': u'https://www.legis.iowa.gov/legislators/legislator?ga=88&personID=26998'},
 {u'active': True,
  u'all_ids': [u'~not available~'],
  u'chamber': u'upper',
  u'country': u'us',
  u'created_at': u'2019-01-13 06:06:23',
  u'district': u'1',
  u'email': u'zach.whiting@legis.iowa.gov',
  u'first_name': u'Zach',
  u'full_name': u'Zach Whiting',
  u'id': u'~not available~',
  u'last_name': u'Whiting',
  u'leg_id': u'~not available~',
  u'level': u'state',
  u'middle_name': u'',
  u'offices': [{u'address': u'PO Box 385, Spirit Lake, IA 51360',
    u'email': None,
    u'fax': None,
    u'name': u'District Office',
    u'phone': None,
    u'type': u'district'},
   {u'address': None,
    u'email': u'zach.whiting@legis.iowa.gov',
    u'fax': None,
    u'name': u'Capitol Office',
    u'phone': u'515-281-3371',
    u'type': u'capitol'}],
  u'old_roles': {},
  u'party': u'Republican',
  u'photo_url': u'https://www.legis.iowa.gov/photo?action=getPhoto&ga=2019-2020&pid=26997',
  u'roles': [{u'chamber': u'upper',
    u'district': u'1',
    u'end_date': None,
    u'party': u'Republican',
    u'start_date': None,
    u'state': u'ia',
    u'term': u'2017-2018',
    u'type': u'member'}],
  u'sources': [{u'url': u'https://www.legis.iowa.gov/legislators/legislator?ga=88&personID=26997'}],
  u'state': u'ia',
  u'suffix': u'',
  u'updated_at': u'2019-01-13 06:06:24',
  u'url': u'https://www.legis.iowa.gov/legislators/legislator?ga=88&personID=26997'},
 {u'active': True,
  u'all_ids': [u'~not available~'],
  u'chamber': u'upper',
  u'country': u'us',
  u'created_at': u'2019-01-13 06:06:25',
  u'district': u'29',
  u'email': u'carrie.koelker@legis.iowa.gov',
  u'first_name': u'Carrie',
  u'full_name': u'Carrie Koelker',
  u'id': u'~not available~',
  u'last_name': u'Koelker',
  u'leg_id': u'~not available~',
  u'level': u'state',
  u'middle_name': u'',
  u'offices': [{u'address': u'807 Third St NW, Dyersville, IA 52040',
    u'email': None,
    u'fax': None,
    u'name': u'District Office',
    u'phone': u'563-875-7530',
    u'type': u'district'},
   {u'address': None,
    u'email': u'carrie.koelker@legis.iowa.gov',
    u'fax': None,
    u'name': u'Capitol Office',
    u'phone': u'515-281-3371',
    u'type': u'capitol'}],
  u'old_roles': {},
  u'party': u'Republican',
  u'photo_url': u'https://www.legis.iowa.gov/photo?action=getPhoto&ga=2019-2020&pid=27001',
  u'roles': [{u'chamber': u'upper',
    u'district': u'29',
    u'end_date': None,
    u'party': u'Republican',
    u'start_date': None,
    u'state': u'ia',
    u'term': u'2017-2018',
    u'type': u'member'}],
  u'sources': [{u'url': u'https://www.legis.iowa.gov/legislators/legislator?ga=88&personID=27001'}],
  u'state': u'ia',
  u'suffix': u'',
  u'updated_at': u'2019-01-13 06:06:25',
  u'url': u'https://www.legis.iowa.gov/legislators/legislator?ga=88&personID=27001'},
 {u'active': True,
  u'all_ids': [u'~not available~'],
  u'chamber': u'upper',
  u'country': u'us',
  u'created_at': u'2019-01-13 06:06:27',
  u'district': u'49',
  u'email': u'chris.cournoyer@legis.iowa.gov',
  u'first_name': u'Chris',
  u'full_name': u'Chris Cournoyer',
  u'id': u'~not available~',
  u'last_name': u'Cournoyer',
  u'leg_id': u'~not available~',
  u'level': u'state',
  u'middle_name': u'',
  u'offices': [{u'address': u'27633 Blackhawk Ct, LeClaire, IA 52753',
    u'email': None,
    u'fax': None,
    u'name': u'District Office',
    u'phone': None,
    u'type': u'district'},
   {u'address': None,
    u'email': u'chris.cournoyer@legis.iowa.gov',
    u'fax': None,
    u'name': u'Capitol Office',
    u'phone': u'515-281-3371',
    u'type': u'capitol'}],
  u'old_roles': {},
  u'party': u'Republican',
  u'photo_url': u'https://www.legis.iowa.gov/photo?action=getPhoto&ga=2019-2020&pid=27004',
  u'roles': [{u'chamber': u'upper',
    u'district': u'49',
    u'end_date': None,
    u'party': u'Republican',
    u'start_date': None,
    u'state': u'ia',
    u'term': u'2017-2018',
    u'type': u'member'}],
  u'sources': [{u'url': u'https://www.legis.iowa.gov/legislators/legislator?ga=88&personID=27004'}],
  u'state': u'ia',
  u'suffix': u'',
  u'updated_at': u'2019-01-13 06:06:27',
  u'url': u'https://www.legis.iowa.gov/legislators/legislator?ga=88&personID=27004'},
 {u'active': True,
  u'all_ids': [u'~not available~'],
  u'chamber': u'upper',
  u'country': u'us',
  u'created_at': u'2019-01-13 06:06:28',
  u'district': u'41',
  u'email': u'mariannette.miller-meeks@legis.iowa.gov',
  u'first_name': u'Mariannette',
  u'full_name': u'Mariannette Miller-Meeks',
  u'id': u'~not available~',
  u'last_name': u'Miller-Meeks',
  u'leg_id': u'~not available~',
  u'level': u'state',
  u'middle_name': u'',
  u'offices': [{u'address': u'11674 90th St, Ottumwa, IA 52501',
    u'email': None,
    u'fax': None,
    u'name': u'District Office',
    u'phone': u'641-683-7551',
    u'type': u'district'},
   {u'address': None,
    u'email': u'mariannette.miller-meeks@legis.iowa.gov',
    u'fax': None,
    u'name': u'Capitol Office',
    u'phone': u'515-281-3371',
    u'type': u'capitol'}],
  u'old_roles': {},
  u'party': u'Republican',
  u'photo_url': u'https://www.legis.iowa.gov/photo?action=getPhoto&ga=2019-2020&pid=27003',
  u'roles': [{u'chamber': u'upper',
    u'district': u'41',
    u'end_date': None,
    u'party': u'Republican',
    u'start_date': None,
    u'state': u'ia',
    u'term': u'2017-2018',
    u'type': u'member'}],
  u'sources': [{u'url': u'https://www.legis.iowa.gov/legislators/legislator?ga=88&personID=27003'}],
  u'state': u'ia',
  u'suffix': u'',
  u'updated_at': u'2019-01-13 06:06:28',
  u'url': u'https://www.legis.iowa.gov/legislators/legislator?ga=88&personID=27003'}]
In [24]:
for name in senate:
    print(name["full_name", "party"])

KeyErrorTraceback (most recent call last)
<ipython-input-24-4141c43148a6> in <module>()
      1 for name in senate:
----> 2     print(name["full_name", "party"])

KeyError: ('full_name', 'party')
In [28]:
mytupe = ("cat", "")
In [29]:
yourtupe = "cat", ""
In [30]:
mytupe == yourtupe
Out[30]:
True
In [31]:
for name in senate:
    n = name["full_name"]
    p = name["party"]
    print(n + " " + p["offices"][0]["phone"])
Mark Segebart Republican
Amanda Ragan Democratic
Robert Hogg Democratic
Mark Costello Republican
Craig Johnson Republican
Jake Chapman Republican
Julian B. Garrett Republican
Nate Boulton Democratic
Michael Breitbach Republican
Dan Dawson Republican
Thomas A. Greene Republican
Pam Jochum Democratic
Joe Bolkcom Democratic
Liz Mathis Democratic
Jeff Danielson Democratic
Brad Zaun Republican
Dan Zumbach Republican
Roby Smith Republican
Todd E. Taylor Democratic
Jeff Edler Republican
Herman C. Quirmbach Democratic
Jerry Behn Republican
Tim Kraayenbrink Republican
Jim Lykam Democratic
Tim L. Kapucian Republican
Janet Petersen Democratic
Jason Schultz Republican
Rich Taylor Democratic
Waylon Brown Republican
Kevin Kinney Democratic
Amy Sinclair Republican
Randy Feenstra Republican
Tom Shipley Republican
Zach Nunn Republican
Mark S. Lofgren Republican
Ken Rozenboom Republican
Annette Sweeney Republican
Dennis Guth Republican
William A. Dotzler Jr. Democratic
Jack Whitver Republican
Charles Schneider Republican
Jim Carlin Republican
Tony Bisignano Democratic
Zach Wahls Democratic
Claire Celsi Democratic
Jackie Smith Democratic
Zach Whiting Republican
Carrie Koelker Republican
Chris Cournoyer Republican
Mariannette Miller-Meeks Republican
In [47]:
def harass_all_democrats(item):
    if item["party"] == "Democratic":
        name = item["full_name"] 
        office = item["offices"][0]["phone"]
        if name and office:
            print(name + " " + office)
In [48]:
for x in senate:
    harass_all_democrats(x)
Amanda Ragan 641-424-0874
Robert Hogg 319-247-0223
Nate Boulton 515-265-1389
Pam Jochum 563-556-6530
Joe Bolkcom 319-337-6280
Liz Mathis 319-361-1725
Herman C. Quirmbach 515-292-8984
Jim Lykam 563-391-1919
Kevin Kinney 319-631-4667
William A. Dotzler Jr. 319-296-2947
Claire Celsi 515-462-0487
Jackie Smith 712-898-0477
In [42]:
def find_all_democrats(item):
    if item["party"] == "Democratic":
        print(item["full_name"])

print(list([find_all_democrats(x) for x in senate]))
Amanda Ragan
Robert Hogg
Nate Boulton
Pam Jochum
Joe Bolkcom
Liz Mathis
Jeff Danielson
Todd E. Taylor
Herman C. Quirmbach
Jim Lykam
Janet Petersen
Rich Taylor
Kevin Kinney
William A. Dotzler Jr.
Tony Bisignano
Zach Wahls
Claire Celsi
Jackie Smith
[None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None]
In [43]:
[x for x in senate if x["full_name"] == "Jeff Danielson"]
Out[43]:
[{u'active': True,
  u'all_ids': [u'IAL000014', u'IAL000188'],
  u'chamber': u'upper',
  u'country': u'us',
  u'created_at': u'2018-10-18 14:41:56',
  u'district': u'30',
  u'email': u'jeffdanielson@gmail.com',
  u'first_name': u'Jeff',
  u'full_name': u'Jeff Danielson',
  u'id': u'IAL000014',
  u'last_name': u'Danielson',
  u'leg_id': u'IAL000014',
  u'level': u'state',
  u'middle_name': u'',
  u'offices': [{u'address': u'PO Box 1191, Cedar Falls, IA 50613',
    u'email': None,
    u'fax': None,
    u'name': u'District Office',
    u'phone': None,
    u'type': u'district'},
   {u'address': None,
    u'email': u'jeffdanielson@gmail.com',
    u'fax': None,
    u'name': u'Capitol Office',
    u'phone': u'515-281-3371',
    u'type': u'capitol'}],
  u'old_roles': {},
  u'party': u'Democratic',
  u'photo_url': u'https://www.legis.iowa.gov/photo?action=getPhoto&ga=2019-2020&pid=785',
  u'roles': [{u'chamber': u'upper',
    u'district': u'30',
    u'end_date': None,
    u'party': u'Democratic',
    u'start_date': None,
    u'state': u'ia',
    u'term': u'2017-2018',
    u'type': u'member'}],
  u'sources': [{u'url': u'https://www.legis.iowa.gov/legislators/legislator?ga=88&personID=785'}],
  u'state': u'ia',
  u'suffix': u'',
  u'updated_at': u'2019-01-13 06:06:27',
  u'url': u'https://www.legis.iowa.gov/legislators/legislator?ga=88&personID=785'}]

links