You don't need Fiona to write a GeoJSON file features = [feat for feat in Fiona.open("a_shapefile.shp") layer = { "type": "FeatureCollection", "features": features} # save json file import json #or GeoJSON with open('result.geojson', 'w') as outfile: json.dump(my_layer,outfile) No CRS is explicitly defined inside the original GeoJSON format but you can add a crs in my_layer. The coordinate reference system must be in a special format (OGC CRS URN, see [What's up with the GeoJSON spec and CRS as a IRM?][1]) not compatible with the Fiona .crs (PROJ4 format) layer = { "type": "FeatureCollection", "crs": { "type": "name", "properties": { "name": "urn:ogc:def:crs:EPSG::31370" } }, "features": features} Or you can use [PyGeoJ][2] import PygeoJ newfile= pygeoj.new() for feat in fiona.open('a_shapefile.shp"): newfile.add_feature(feat) # now you can add many parameters newfile.add_all_bboxes() newfile.add_unique_id() newfile.define_crs(type="link", link="http://spatialreference.org/ref/epsg/31370/esriwkt/", link_type="esriwkt") newfile.save("test.geojson") [1]: http://gis.stackexchange.com/questions/15953/whats-up-with-the-geojson-spec-and-crs-as-a-irm [2]: https://github.com/karimbahgat/PyGeoj