In [1]:
from matplotlib.pyplot import *
import json

from geojson import Feature, FeatureCollection, Point
import folium

In [2]:
data = json.load(open('us-libraries.json'))

In [3]:
d = data['data']
d[0]


Out[3]:
[1,
 'CB5302AA-9B6D-4CA1-83C2-CFE1B861E89E',
 1,
 1475169328,
 '956684',
 1475169328,
 '956684',
 None,
 'AK0001',
 '002',
 'AK0001-002',
 'ANCHOR POINT PUBLIC LIBRARY',
 '9072355692',
 'KENAI PENINSULA',
 ['{"address":"72551 MILO FRITZ AVENUE ANCHOR POINT","city":"AK","state":"","zip":"99556"}',
  '59.779604',
  '-151.840007',
  None,
  False],
 '43',
 '57477',
 'CE',
 '1287',
 '0',
 '1377',
 '51',
 'NO',
 '0',
 '0',
 '0']

In [4]:
states = ["AL", "AK", "AZ", "AR", "CA", "CO", "CT", "DC", "DE", "FL", "GA", 
          "HI", "ID", "IL", "IN", "IA", "KS", "KY", "LA", "ME", "MD", 
          "MA", "MI", "MN", "MS", "MO", "MT", "NE", "NV", "NH", "NJ", 
          "NM", "NY", "NC", "ND", "OH", "OK", "OR", "PA", "RI", "SC", 
          "SD", "TN", "TX", "UT", "VT", "VA", "WA", "WV", "WI", "WY"]

In [5]:
libraries_features = []

for i,r in enumerate(d):
    state = r[8][:2]
    lat = float(r[14][1])
    lon = float(r[14][2])
    if (state in ('AK', 'HI') or
        state not in states or
        i % 20 == 0):
        ob = Feature(geometry=Point((lon, lat), properties=dict(state=state)))
        libraries_features.append(ob)

collection = FeatureCollection([*libraries_features])

In [6]:
m = folium.Map(
    location=(40.0, -95.0),
    zoom_start=2,
)

folium.GeoJson(collection, name='geojson').add_to(m)
m


Out[6]:

In [7]:
m.save('us-libraries.html')

In [8]: