A Python library for converting ArcGIS JSON to GeoJSON: A partial port of ESRI's arcgis-to-geojson-utils.
pip install arcgis2geojson
Convert an ArcGIS JSON string to a GeoJSON string
>>> from arcgis2geojson import arcgis2geojson
>>> input = """{
... "attributes": {"OBJECTID": 123},
... "geometry": { "rings": [ [ [41.8359375, 71.015625],
... [56.953125, 33.75],
... [21.796875, 36.5625],
... [41.8359375, 71.015625]]],
... "spatialReference": {"wkid": 4326}}}"""
>>> output = arcgis2geojson(input)
>>> output
'{"type": "Feature", "geometry": {"type": "Polygon", "coordinates": [[[41.8359375, 71.015625], [21.796875, 36.5625], [56.953125, 33.75], [41.8359375, 71.015625]]]}, "properties": {"OBJECTID": 123}, "id": 123}'
>>> type(output)
<class 'str'>
Convert a python dict to a python dict
>>> from arcgis2geojson import arcgis2geojson
>>> input = {
... 'attributes': {'OBJECTID': 123},
... 'geometry': { 'rings': [ [ [41.8359375, 71.015625],
... [56.953125, 33.75],
... [21.796875, 36.5625],
... [41.8359375, 71.015625]]],
... 'spatialReference': {'wkid': 4326}}}
>>> output = arcgis2geojson(input)
>>> output
{'type': 'Feature', 'geometry': {'type': 'Polygon', 'coordinates': [[[41.8359375, 71.015625], [21.796875, 36.5625], [56.953125, 33.75], [41.8359375, 71.015625]]]}, 'properties': {'OBJECTID': 123}, 'id': 123}
>>> type(output)
<class 'dict'>
# convert ArcGIS json file to GeoJOSN file
$ arcgis2geojson arcgis.json > geo.json
# fetch ArcGIS json from the web and convert to GeoJSON
$ curl "https://myserver.com/arcgis.json" | arcgis2geojson
arcgis2geojson is a derivative work of ESRI's arcgis-to-geojson-utils. Original code is Copyright 2015 by Esri and was licensed under the Apache License, Version 2.0.
arcgis2geojson is made available under the MIT License.