<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: Trying to overwrite/update a feature layer using json from an api in ArcGIS API for Python Questions</title>
    <link>https://community.esri.com/t5/arcgis-api-for-python-questions/trying-to-overwrite-update-a-feature-layer-using/m-p/1501325#M10295</link>
    <description>&lt;P&gt;Remember it's expecting a list so it has to be adds=[temp_line]&lt;/P&gt;</description>
    <pubDate>Wed, 03 Jul 2024 20:41:40 GMT</pubDate>
    <dc:creator>EarlMedina</dc:creator>
    <dc:date>2024-07-03T20:41:40Z</dc:date>
    <item>
      <title>Trying to overwrite/update a feature layer using json from an api</title>
      <link>https://community.esri.com/t5/arcgis-api-for-python-questions/trying-to-overwrite-update-a-feature-layer-using/m-p/1500350#M10278</link>
      <description>&lt;P&gt;I am trying to automate updates to a polyline hosted feature layer in AGOL using an API. I think I have the format of the json to update correct, however, I'm having trouble with the final step of pushing the updates to the existing hosted feature layer (&lt;STRONG&gt;line 39&lt;/STRONG&gt;).&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;LI-CODE lang="python"&gt;# Main function to fetch API, decode polylines, and publish to ArcGIS Online
def main():

    # Make request to API
    response = requests.get(api_url)
    if response.status_code == 200:
        # Assuming API response is JSON with 'features' containing polyline data
        features = response.json()
        

        # Extract features from the API data
        #features = api_data.get('features', [])

        #if not features:
        #    print("No features found in API response.")
        #    return

        try:
            # Truncate existing features in the feature layer
            feature_layer.manager.truncate()

            # Prepare new features to add
            geojson_features = []
            for feature in features:
                encoded_polyline = feature.get('EncodedPolyline')
                description = feature.get('Description')

                if encoded_polyline and description:
                    # Decode polyline from 'EncodedPolyline' field
                    decoded_polyline = decode_polyline(encoded_polyline)

                    # Convert to GeoJSON Feature format
                    geojson_feature = to_geojson_feature(decoded_polyline, description)
                    
                    geojson_features.append(geojson_feature)

            # Add new GeoJSON features to the feature layer
            print(json.dumps(geojson_features))
            result = feature_layer.edit_features(adds=json.dumps(geojson_features))

            print(f"Features updated successfully in ArcGIS Online hosted feature layer.")

        except Exception as e:
            print(f"Failed to update feature layer: {str(e)}")

    else:
        print("Failed to fetch data from API.")&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;This is what the &lt;STRONG&gt;print(json.dumps(geojson_features))&lt;/STRONG&gt; returns:&lt;/P&gt;&lt;PRE&gt;[{"type": "Feature", "geometry": {"type": "LineString", "coordinates": [[40.77248, -111.8377], [40.77254, -111.83776], [40.7728, -111.83804], [40.77248, -111.8377]]}, "properties": {"Description": "Blue Detour"}},&lt;/PRE&gt;&lt;P&gt;***I removed most of the coordinates for simplicity, and only included the first feature, the rest of the features have the same format&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;This is what is returned for the &lt;STRONG&gt;feature_layer.edit_features(adds=json.dumps(geojson_features))&lt;/STRONG&gt;:&amp;nbsp;&lt;/P&gt;&lt;PRE&gt;pass in features as list of Features, dicts or PropertyMap
Parameters not valid for edit_features&lt;/PRE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Tue, 02 Jul 2024 15:03:23 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcgis-api-for-python-questions/trying-to-overwrite-update-a-feature-layer-using/m-p/1500350#M10278</guid>
      <dc:creator>GIS_utahDEM</dc:creator>
      <dc:date>2024-07-02T15:03:23Z</dc:date>
    </item>
    <item>
      <title>Re: Trying to overwrite/update a feature layer using json from an api</title>
      <link>https://community.esri.com/t5/arcgis-api-for-python-questions/trying-to-overwrite-update-a-feature-layer-using/m-p/1500944#M10286</link>
      <description>&lt;P&gt;You are passing in a string when you use json.dumps. Try this instead and see if it makes a difference:&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;feature_layer.edit_features(adds=geojson_features)&lt;/STRONG&gt;&lt;/P&gt;</description>
      <pubDate>Wed, 03 Jul 2024 13:03:02 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcgis-api-for-python-questions/trying-to-overwrite-update-a-feature-layer-using/m-p/1500944#M10286</guid>
      <dc:creator>EarlMedina</dc:creator>
      <dc:date>2024-07-03T13:03:02Z</dc:date>
    </item>
    <item>
      <title>Re: Trying to overwrite/update a feature layer using json from an api</title>
      <link>https://community.esri.com/t5/arcgis-api-for-python-questions/trying-to-overwrite-update-a-feature-layer-using/m-p/1500960#M10287</link>
      <description>&lt;P&gt;When I swap that out, I get the following error:&lt;/P&gt;&lt;PRE&gt;Failed to update feature layer: Cannot perform operation. Invalid operation parameters.
'adds' parameter is invalid
Object reference not set to an instance of an object.
(Error Code: 400)&lt;/PRE&gt;&lt;P&gt;&lt;a href="https://community.esri.com/t5/user/viewprofilepage/user-id/86309"&gt;@EarlMedina&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Wed, 03 Jul 2024 13:39:37 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcgis-api-for-python-questions/trying-to-overwrite-update-a-feature-layer-using/m-p/1500960#M10287</guid>
      <dc:creator>GIS_utahDEM</dc:creator>
      <dc:date>2024-07-03T13:39:37Z</dc:date>
    </item>
    <item>
      <title>Re: Trying to overwrite/update a feature layer using json from an api</title>
      <link>https://community.esri.com/t5/arcgis-api-for-python-questions/trying-to-overwrite-update-a-feature-layer-using/m-p/1501121#M10288</link>
      <description>&lt;P&gt;Ah, sorry I think I missed before that you were appending GeoJSON features. I believe you have to convert to esri json format. Something like this:&lt;/P&gt;&lt;PRE&gt;[
  {
   "attributes": {
    "a": 1,
    "b": 1970.0,
    "c": 1.0,
   },
   "geometry": {
     "paths": [&lt;BR /&gt;       [&lt;BR /&gt;         [-97.06138, 32.837],&lt;BR /&gt;         [-97.06133, 33.836],&lt;BR /&gt;         [-98.2, 34.834],&lt;BR /&gt;         [-97, 40]&lt;BR /&gt;       ]&lt;BR /&gt;     ],&lt;BR /&gt;     "spatialReference": {"wkid": 4326}
   }&lt;BR /&gt;  },&lt;BR /&gt;  ...&lt;BR /&gt;]&lt;/PRE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;You may refer to this documentation to get a sense of the geometry format you need:&amp;nbsp;&lt;A href="https://developers.arcgis.com/rest/services-reference/enterprise/geometry-objects/" target="_blank"&gt;Geometry objects | ArcGIS REST APIs | ArcGIS Developers&lt;/A&gt;&lt;/P&gt;</description>
      <pubDate>Wed, 03 Jul 2024 16:47:31 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcgis-api-for-python-questions/trying-to-overwrite-update-a-feature-layer-using/m-p/1501121#M10288</guid>
      <dc:creator>EarlMedina</dc:creator>
      <dc:date>2024-07-03T16:47:31Z</dc:date>
    </item>
    <item>
      <title>Re: Trying to overwrite/update a feature layer using json from an api</title>
      <link>https://community.esri.com/t5/arcgis-api-for-python-questions/trying-to-overwrite-update-a-feature-layer-using/m-p/1501184#M10290</link>
      <description>&lt;P&gt;Thank you -- I think I'm getting closer but I'm still having some difficulty. I've transformed to the appropriate format (I think), and I eliminated the attributes/ids for simplicity for now, but I am still getting an error. The format that I get which I'm trying to use in the .edit_features(adds=) is:&lt;/P&gt;&lt;PRE&gt;{'geometry': {'hasZ': False, 'hasM': False, 'paths': [[(40.77248, -111.8377), (40.77254, -111.83776), (40.7728, -111.83804), (40.7728, -111.83804), (40.77248, -111.8377)], [(40.76466, -111.84503), (40.76455, -111.84494), (0.76478, -111.84513), (40.76466, -111.84503)], [(40.76418, -111.8268), (40.76413, -111.82683), (40.76417, -111.82681)]], 'spatialReference': {'wkid': 4326}}}&lt;/PRE&gt;&lt;P&gt;&amp;nbsp;With this I get the error:&amp;nbsp;&lt;/P&gt;&lt;PRE&gt;Failed to update feature layer: 0&lt;/PRE&gt;&lt;P&gt;Maybe the issue is coming from me using the .decode() method from the &lt;A href="https://pypi.org/project/polyline/#:~:text=geojson%3DTrue.-,Decoding,-To%20get%20a" target="_self"&gt;polyline library&lt;/A&gt; to return my paths?&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;a href="https://community.esri.com/t5/user/viewprofilepage/user-id/86309"&gt;@EarlMedina&lt;/a&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Wed, 03 Jul 2024 18:02:23 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcgis-api-for-python-questions/trying-to-overwrite-update-a-feature-layer-using/m-p/1501184#M10290</guid>
      <dc:creator>GIS_utahDEM</dc:creator>
      <dc:date>2024-07-03T18:02:23Z</dc:date>
    </item>
    <item>
      <title>Re: Trying to overwrite/update a feature layer using json from an api</title>
      <link>https://community.esri.com/t5/arcgis-api-for-python-questions/trying-to-overwrite-update-a-feature-layer-using/m-p/1501248#M10291</link>
      <description>&lt;P&gt;Possibly? It looks like it might be getting confused about the tuples in your coordinates:&lt;/P&gt;&lt;PRE&gt;[[(40.77248, -111.8377)...&lt;/PRE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Replace all parentheses with the corresponding open/closing square bracket and I think you should be close.&lt;/P&gt;</description>
      <pubDate>Wed, 03 Jul 2024 18:37:11 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcgis-api-for-python-questions/trying-to-overwrite-update-a-feature-layer-using/m-p/1501248#M10291</guid>
      <dc:creator>EarlMedina</dc:creator>
      <dc:date>2024-07-03T18:37:11Z</dc:date>
    </item>
    <item>
      <title>Re: Trying to overwrite/update a feature layer using json from an api</title>
      <link>https://community.esri.com/t5/arcgis-api-for-python-questions/trying-to-overwrite-update-a-feature-layer-using/m-p/1501253#M10292</link>
      <description>&lt;P&gt;Unfortunately that didn't fix it&amp;nbsp;&lt;span class="lia-unicode-emoji" title=":confused_face:"&gt;😕&lt;/span&gt;. I still get "Failed to update feature layer: 0" even when I replaced the tuples with lists.&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Wed, 03 Jul 2024 18:50:58 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcgis-api-for-python-questions/trying-to-overwrite-update-a-feature-layer-using/m-p/1501253#M10292</guid>
      <dc:creator>GIS_utahDEM</dc:creator>
      <dc:date>2024-07-03T18:50:58Z</dc:date>
    </item>
    <item>
      <title>Re: Trying to overwrite/update a feature layer using json from an api</title>
      <link>https://community.esri.com/t5/arcgis-api-for-python-questions/trying-to-overwrite-update-a-feature-layer-using/m-p/1501257#M10293</link>
      <description>&lt;P&gt;Just to simplify things further, how about if you just remove all the extra stuff and send in this?&lt;/P&gt;&lt;LI-CODE lang="python"&gt;{
  "geometry": {
    "paths": [
      [
        [
          40.77248,
          -111.8377
        ],
        [
          40.77254,
          -111.83776
        ],
        [
          40.7728,
          -111.83804
        ],
        [
          40.7728,
          -111.83804
        ],
        [
          40.77248,
          -111.8377
        ]
      ]
    ]
  }
}&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I think you had some nesting going on before.&lt;/P&gt;</description>
      <pubDate>Wed, 03 Jul 2024 18:59:30 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcgis-api-for-python-questions/trying-to-overwrite-update-a-feature-layer-using/m-p/1501257#M10293</guid>
      <dc:creator>EarlMedina</dc:creator>
      <dc:date>2024-07-03T18:59:30Z</dc:date>
    </item>
    <item>
      <title>Re: Trying to overwrite/update a feature layer using json from an api</title>
      <link>https://community.esri.com/t5/arcgis-api-for-python-questions/trying-to-overwrite-update-a-feature-layer-using/m-p/1501283#M10294</link>
      <description>&lt;P&gt;This is what I get:&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="GIS_utahDEM_0-1720035275167.png" style="width: 400px;"&gt;&lt;img src="https://community.esri.com/t5/image/serverpage/image-id/108763i102969C31DC66064/image-size/medium?v=v2&amp;amp;px=400" role="button" title="GIS_utahDEM_0-1720035275167.png" alt="GIS_utahDEM_0-1720035275167.png" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Wed, 03 Jul 2024 19:34:35 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcgis-api-for-python-questions/trying-to-overwrite-update-a-feature-layer-using/m-p/1501283#M10294</guid>
      <dc:creator>GIS_utahDEM</dc:creator>
      <dc:date>2024-07-03T19:34:35Z</dc:date>
    </item>
    <item>
      <title>Re: Trying to overwrite/update a feature layer using json from an api</title>
      <link>https://community.esri.com/t5/arcgis-api-for-python-questions/trying-to-overwrite-update-a-feature-layer-using/m-p/1501325#M10295</link>
      <description>&lt;P&gt;Remember it's expecting a list so it has to be adds=[temp_line]&lt;/P&gt;</description>
      <pubDate>Wed, 03 Jul 2024 20:41:40 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcgis-api-for-python-questions/trying-to-overwrite-update-a-feature-layer-using/m-p/1501325#M10295</guid>
      <dc:creator>EarlMedina</dc:creator>
      <dc:date>2024-07-03T20:41:40Z</dc:date>
    </item>
    <item>
      <title>Re: Trying to overwrite/update a feature layer using json from an api</title>
      <link>https://community.esri.com/t5/arcgis-api-for-python-questions/trying-to-overwrite-update-a-feature-layer-using/m-p/1505959#M10351</link>
      <description>&lt;P&gt;&lt;a href="https://community.esri.com/t5/user/viewprofilepage/user-id/86309"&gt;@EarlMedina&lt;/a&gt;&amp;nbsp;I replaced adds=temp_line with adds=[temp_line] and this is what I got (sorry for the atrocious highlighting). I also printed temp_line just to see what it looked like:&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="GIS_utahDEM_0-1721163894319.png" style="width: 400px;"&gt;&lt;img src="https://community.esri.com/t5/image/serverpage/image-id/109906i072CD8B692CAFA04/image-size/medium?v=v2&amp;amp;px=400" role="button" title="GIS_utahDEM_0-1721163894319.png" alt="GIS_utahDEM_0-1721163894319.png" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Any chance you're at the UC? Haha&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Tue, 16 Jul 2024 21:06:05 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcgis-api-for-python-questions/trying-to-overwrite-update-a-feature-layer-using/m-p/1505959#M10351</guid>
      <dc:creator>GIS_utahDEM</dc:creator>
      <dc:date>2024-07-16T21:06:05Z</dc:date>
    </item>
    <item>
      <title>Re: Trying to overwrite/update a feature layer using json from an api</title>
      <link>https://community.esri.com/t5/arcgis-api-for-python-questions/trying-to-overwrite-update-a-feature-layer-using/m-p/1507974#M10361</link>
      <description>&lt;P&gt;Hey sorry,&lt;/P&gt;&lt;P&gt;We may be overcomplicating things here.&lt;/P&gt;&lt;P&gt;How about you add this import:&lt;/P&gt;&lt;PRE&gt;from arcgis.features import FeatureSet&lt;/PRE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;and then try to parse your data with one of the below.&amp;nbsp;I think you may be able to parse your original geojson with "from_geojson"&lt;/P&gt;&lt;PRE&gt; FeatureSet.from_dict()
 FeatureSet.from_geojson()
 FeatureSet.from_json()&lt;/PRE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Supply the result to the "adds" param.&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Mon, 22 Jul 2024 15:08:11 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcgis-api-for-python-questions/trying-to-overwrite-update-a-feature-layer-using/m-p/1507974#M10361</guid>
      <dc:creator>EarlMedina</dc:creator>
      <dc:date>2024-07-22T15:08:11Z</dc:date>
    </item>
  </channel>
</rss>

