{"id":20942,"library":"arcgis2geojson","title":"arcgis2geojson","description":"A Python library for converting ArcGIS JSON (ESRI FeatureSet, Feature, Point, Polyline, Polygon, MultiPoint) to GeoJSON. Current version 3.1.1, requires Python >=3.10. Maintained, with regular releases.","status":"active","version":"3.1.1","language":"python","source_language":"en","source_url":"https://github.com/chris48s/arcgis2geojson","tags":["arcgis","geojson","conversion","gis","esri"],"install":[{"cmd":"pip install arcgis2geojson","lang":"bash","label":"Install from PyPI"}],"dependencies":[],"imports":[{"note":"The module is used as a package; primary function is arcgis2geojson()","symbol":"arcgis2geojson","correct":"import arcgis2geojson"},{"note":"Function is lowercase; class naming was common mistake in older versions","wrong":"from arcgis2geojson import ArcGIS2GeoJSON","symbol":"N/A","correct":"from arcgis2geojson import arcgis2geojson"}],"quickstart":{"code":"import arcgis2geojson\n\n# Convert an ArcGIS JSON FeatureSet (dict)\narcgis_json = {\n    \"geometryType\": \"esriGeometryPoint\",\n    \"features\": [{\"attributes\": {\"id\": 1}, \"geometry\": {\"x\": -122.68, \"y\": 45.52}}]\n}\ngeojson = arcgis2geojson.arcgis2geojson(arcgis_json)\nprint(geojson)\n# Output: {'type': 'FeatureCollection', 'features': [{'type': 'Feature', 'properties': {'id': 1}, 'geometry': {'type': 'Point', 'coordinates': [-122.68, 45.52]}}]}","lang":"python","description":"Convert a basic ArcGIS JSON FeatureSet to GeoJSON."},"warnings":[{"fix":"geojson = arcgis2geojson.arcgis2geojson(json.loads(arcgis_json_string))","message":"The function arcgis2geojson() expects a Python dict (parsed from JSON), not a raw JSON string. If you have a string, you must parse it via json.loads() first.","severity":"gotcha","affected_versions":"all"},{"fix":"Manually reproject coordinates using a library like pyproj before passing to arcgis2geojson.","message":"ArcGIS JSON with spatialReference.wkid (e.g., 4326) is not automatically reprojected; the library assumes WGS84 (EPSG:4326). If your data is in a different CRS, you must reproject before conversion.","severity":"gotcha","affected_versions":"all"},{"fix":"Replace convert(...) with arcgis2geojson(...).","message":"The old experimental function 'convert' (from v2.x) was removed in v3.0. Use 'arcgis2geojson' function instead.","severity":"deprecated","affected_versions":">=3.0"}],"env_vars":null,"last_verified":"2026-04-27T00:00:00.000Z","next_check":"2026-07-26T00:00:00.000Z","problems":[{"fix":"Ensure you have arcgis2geojson installed (pip list) and import as 'import arcgis2geojson' then use 'arcgis2geojson.arcgis2geojson'. Alternatively, do 'from arcgis2geojson import arcgis2geojson'.","cause":"Import performed as 'import arcgis2geojson' but the function may not be directly accessible due to shadowing (unlikely in current version) OR incorrect installation.","error":"AttributeError: module 'arcgis2geojson' has no attribute 'arcgis2geojson'"},{"fix":"Make sure your ArcGIS JSON includes 'geometryType' (e.g., 'esriGeometryPoint', 'esriGeometryPolygon').","cause":"Input dictionary missing the required 'geometryType' key. This is mandatory for ArcGIS JSON.","error":"KeyError: 'geometryType'"},{"fix":"Parse the string first: import json; arcgis_json = json.loads(json_string); geojson = arcgis2geojson.arcgis2geojson(arcgis_json)","cause":"Passed a JSON string (str) instead of a dict to arcgis2geojson().","error":"TypeError: string indices must be integers"}],"ecosystem":"pypi","meta_description":null,"install_score":null,"install_tag":null,"quickstart_score":null,"quickstart_tag":null}