| import requests, time, os, sys, json, csv | import requests, time, os, sys, json, csv | ||||
| from bs4 import BeautifulSoup | from bs4 import BeautifulSoup | ||||
| class DataTable: | |||||
| def __init__(self): | |||||
| self.table = {} | |||||
| self.cols = {} | |||||
| self.rows = {} | |||||
| class DataPocket: | class DataPocket: | ||||
| def __init__(self): | def __init__(self): | ||||
| self.rows = {} | self.rows = {} | ||||
| r = requests.get(df.endpoint) | r = requests.get(df.endpoint) | ||||
| rjson = r.json() # this creates a Python object, not a JSON string | |||||
| # in results/cells, column_option and row_option refer to the key field, not the list index | |||||
| # in column_option and row_option, missing value is coded as "", but coded as "." in key field | |||||
| # What are the values of "column_option" and "row_option"? | |||||
| # rc = rjson["results"]["cells"] | |||||
| # for i in range(10): | |||||
| # print(rc[i]) | |||||
| # cols = [] | |||||
| # rows = [] | |||||
| # for v in rc: | |||||
| # print(v.keys()) | |||||
| # if v["column_option"] not in cols: | |||||
| # cols.append(v["column_option"]) | |||||
| # if v["row_option"] not in rows: | |||||
| # rows.append(v["row_option"]) | |||||
| # print(f"Cols: {sorted(cols)}") | |||||
| # print(f"Rows: {sorted(rows)}") | |||||
| # This just confirms that there are, in fact, 51 states incl. DC in this query | |||||
| # ro = rjson["results"]["row"]["options"] | |||||
| # titles = {} | |||||
| # for v in ro: | |||||
| # titles[int(v["key"])] = (v["title"]) | |||||
| # for t in sorted(titles.keys()): | |||||
| # print(f"{titles[t]}") | |||||
| if __name__ == "__main__": | if __name__ == "__main__": |