-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathjson_creator.py
129 lines (109 loc) · 4.53 KB
/
json_creator.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
import csv
import os
import json
import api_fetcher
states = {"AL":"Alabama",
"AK":"Alaska",
"AZ":"Arizona",
"AR":"Arkansas",
"CA":"California",
"CO":"Colorado",
"CT":"Connecticut",
"DE":"Delaware",
"FL":"Florida",
"GA":"Georgia",
"HI":"Hawaii",
"ID":"Idaho",
"IL":"Illinois",
"IN":"Indiana",
"IA":"Iowa",
"KS":"Kansas",
"KY":"Kentucky",
"LA":"Louisiana",
"ME":"Maine",
"MD":"Maryland",
"MA":"Massachusetts",
"MI":"Michigan",
"MN":"Minnesota",
"MS":"Mississippi",
"MO":"Missouri",
"MT":"Montana",
"NE":"Nebraska",
"NV":"Nevada",
"NH":"New Hampshire",
"NJ":"New Jersey",
"NM":"New Mexico",
"NY":"New York",
"NC":"North Carolina",
"ND":"North Dakota",
"OH":"Ohio",
"OK":"Oklahoma",
"OR":"Oregon",
"PA":"Pennsylvania",
"RI":"Rhode Island",
"SC":"South Carolina",
"SD":"South Dakota",
"TN":"Tennessee",
"TX":"Texas",
"UT":"Utah",
"VT":"Vermont",
"VA":"Virginia",
"WA":"Washington",
"WV":"West Virginia",
"WI":"Wisconsin",
"WY":"Wyoming"}
homeless_count_by_state = []
def pitcount_to_dictlist():
"""reads data from csv and creates a list"""
global homeless_count_by_state
directory = "data/PIT_csv_years"
n = len(homeless_count_by_state)
for filename in os.listdir(directory):
if filename.endswith(".csv"):
with open(f"data/PIT_csv_years/{filename}", newline='') as csvfile:
for row in csv.DictReader(csvfile):
year = int(filename[:4])
state_abr = row["CoC"][:2]
count = int(row["Count"])
filtered_list = [i for i in homeless_count_by_state if i.get('state_id') == state_abr and i.get('data_year') == year]
if filtered_list:
filtered_list[0]['pit_count'] += count
else:
if state_abr in states:
name = states[state_abr]
homeless_count_by_state.append({'state_id' : state_abr,
'state_name': name,
'data_year' : year,
'pit_count' : count})
else:
continue
def lowrent_count_to_dictlist():
"""reads low income housing data from Pandas dataframe and adds it to a list"""
global homeless_count_by_state
for state, timeseries in api_fetcher.get_low_rent_count().items():
for year, count in timeseries.items():
filtered_list = [i for i in homeless_count_by_state if i.get('state_id') == state and i.get('data_year') == int(year)]
if filtered_list:
filtered_list[0]["li_rental_inv"] = int(count)
def belowpoverty_population_to_dictlist():
"""reads population below poverty data from Pandas dataframe and adds it into a list"""
global homeless_count_by_state
for state, timeseries in api_fetcher.get_belowpoverty_population().items():
for year, count in timeseries.items():
filtered_list = [i for i in homeless_count_by_state if i.get('state_id') == state and i.get('data_year') == int(year)]
if filtered_list:
filtered_list[0]["state_below_poverty"] = int(count)
def state_population_to_dictlist():
"""reads population below poverty data from Pandas dataframe and adds it into a list"""
global homeless_count_by_state
for state, timeseries in api_fetcher.get_state_population().items():
for year, count in timeseries.items():
filtered_list = [i for i in homeless_count_by_state if i.get('state_id') == state and i.get('data_year') == int(year)]
if filtered_list:
filtered_list[0]["state_population"] = int(count)
pitcount_to_dictlist()
lowrent_count_to_dictlist()
belowpoverty_population_to_dictlist()
state_population_to_dictlist()
with open('./data/deDomiciled.json', 'w') as f:
json.dump(homeless_count_by_state, f)