I am new to programming and am having trouble figuring out how to loop over a list within a list using Python.
I am working with output from the U.S. Census API that is formatted as follows:
[['NAME', 'POP_2020', 'POP_2021', 'state'],
['Oklahoma', '3962031', '3986639', '40'],
['Nebraska', '1961455', '1963692', '31'],
['Hawaii', '1451911', '1441553', '15'],
['South Dakota', '887099', '895376', '46'],
['Tennessee', '6920119', '6975218', '47']]
I would like to write a function that will extract the state name from each of the individual lists.
Here is my code:
import requests
url = f'https://api.census.gov/data/2021/pep/populationget=NAME,POP_2020,POP_2021&for=state:*'
response = requests.get(url)
data = response.json()
def statenames():
for i in data:
print(data[0])
The function above returns the following output, which isn't what I'm looking for:
['NAME', 'POP_2020', 'POP_2021', 'state']
['NAME', 'POP_2020', 'POP_2021', 'state']
['NAME', 'POP_2020', 'POP_2021', 'state']
['NAME', 'POP_2020', 'POP_2021', 'state']
['NAME', 'POP_2020', 'POP_2021', 'state']
['NAME', 'POP_2020', 'POP_2021', 'state']
['NAME', 'POP_2020', 'POP_2021', 'state']
['NAME', 'POP_2020', 'POP_2021', 'state']
I've been able to get the individual state names be writing a series of print statements like this:
print(data[0][0])
print(data[1][0])
print(data[2][0])
I know that isn't very efficient and am hoping there is a way to use a for loop instead.
Thanks in advance for your help!