import shapefile from json import dumps sf = shapefile.Reader("pyshp/shapefiles/blockgroups") fields = sf.fields[1:] field_names = [field[0] for field in fields] buffer = [] for sr in sf.shapeRecords(): atr = dict(zip(field_names, sr.record)) geom = sr.shape.__geo_interface__ buffer.append(dict(type="Feature", geometry=geom, properties=atr)) geojson = open("pyshp-demo.geojson", "w") geojson.write(dumps({"type": "FeatureCollection",\ "features": buffer}, indent=2) + "\n") geojson.close()