<?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 UpdateFeature REST API Python Script Unexpected Error in ArcGIS REST APIs and Services Questions</title>
    <link>https://community.esri.com/t5/arcgis-rest-apis-and-services-questions/updatefeature-rest-api-python-script-unexpected/m-p/337708#M1643</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;UpdateFeature REST API Python Script Unexpected Error&lt;BR /&gt;I am trying to update an ArcGIS Online hosted feature using a python script. I have tried a few examples of using Post methods combined with the Example Usage from the ArcGIS REST API documentation for UpdateFeature(&lt;A href="http://resources.arcgis.com/en/help/arcgis-rest-api/index.html#/Update_Features/02r3000000zt000000/"&gt;http://resources.arcgis.com/en/help/arcgis-rest-api/index.html#/Update_Features/02r3000000zt000000/&lt;/A&gt;) but in each case I get the following error:&lt;BR /&gt;{"error":{"code":500,"message":"An unexpected error occurred processing the request.","details":[]}}&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I am using a json array of features that successfully updates the feature when manually submitted in the form at &lt;A href="http://sampleserver3.arcgisonline.com/ArcGIS/rest/services/SanFrancisco/311Incidents/FeatureServer/0/updateFeatures"&gt;http://sampleserver3.arcgisonline.com/ArcGIS/rest/services/SanFrancisco/311Incidents/FeatureServer/0/updateFeatures&lt;/A&gt;.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Here is the code I use for the requests method:&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &lt;SPAN style="font-family: courier new,courier;"&gt; updateBaseURL = "&lt;A href="http://sampleserver3.arcgisonline.com/ArcGIS/rest/services/SanFrancisco/311Incidents/FeatureServer/0/updateFeatures/?&amp;amp;f=json"&gt;http://sampleserver3.arcgisonline.com/ArcGIS/rest/services/SanFrancisco/311Incidents/FeatureServer/0/updateFeatures/?&amp;amp;f=json&lt;/A&gt;"&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: courier new,courier;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; updateAttr = [&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: courier new,courier;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: courier new,courier;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "attributes" : {&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: courier new,courier;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "objectid": 12976095,&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: courier new,courier;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "address" : "66TH ST and HARRISON ST"&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: courier new,courier;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: courier new,courier;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: courier new,courier;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ]&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: courier new,courier;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; headers = {"Content-type": "application/json", "Accept": "text/plain"}&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: courier new,courier;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; r = requests.post(updateBaseURL, json=updateAttr,headers=headers)&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Here is the code I use for the HTTPConnection method:&lt;BR /&gt;&amp;nbsp; &lt;SPAN style="font-family: courier new,courier;"&gt;&amp;nbsp; updateAttr = [&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: courier new,courier;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: courier new,courier;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "attributes" : {&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: courier new,courier;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "objectid": 12976095,&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: courier new,courier;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "address" : "66TH ST and HARRISON ST"&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: courier new,courier;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: courier new,courier;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: courier new,courier;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ]&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: courier new,courier;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; headers = {"Content-type": "application/json", "Accept": "text/plain"}&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: courier new,courier;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; conn = httplib.HTTPConnection('sampleserver3.arcgisonline.com')&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: courier new,courier;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; conn.request("POST", "/ArcGIS/rest/services/SanFrancisco/311Incidents/FeatureServer/0/updateFeatures/?f=json", json.dumps(updateAttr), headers)&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;How Can I make this work?&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Tue, 30 Dec 2014 04:53:20 GMT</pubDate>
    <dc:creator>JosephMootz1</dc:creator>
    <dc:date>2014-12-30T04:53:20Z</dc:date>
    <item>
      <title>UpdateFeature REST API Python Script Unexpected Error</title>
      <link>https://community.esri.com/t5/arcgis-rest-apis-and-services-questions/updatefeature-rest-api-python-script-unexpected/m-p/337708#M1643</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;UpdateFeature REST API Python Script Unexpected Error&lt;BR /&gt;I am trying to update an ArcGIS Online hosted feature using a python script. I have tried a few examples of using Post methods combined with the Example Usage from the ArcGIS REST API documentation for UpdateFeature(&lt;A href="http://resources.arcgis.com/en/help/arcgis-rest-api/index.html#/Update_Features/02r3000000zt000000/"&gt;http://resources.arcgis.com/en/help/arcgis-rest-api/index.html#/Update_Features/02r3000000zt000000/&lt;/A&gt;) but in each case I get the following error:&lt;BR /&gt;{"error":{"code":500,"message":"An unexpected error occurred processing the request.","details":[]}}&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I am using a json array of features that successfully updates the feature when manually submitted in the form at &lt;A href="http://sampleserver3.arcgisonline.com/ArcGIS/rest/services/SanFrancisco/311Incidents/FeatureServer/0/updateFeatures"&gt;http://sampleserver3.arcgisonline.com/ArcGIS/rest/services/SanFrancisco/311Incidents/FeatureServer/0/updateFeatures&lt;/A&gt;.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Here is the code I use for the requests method:&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &lt;SPAN style="font-family: courier new,courier;"&gt; updateBaseURL = "&lt;A href="http://sampleserver3.arcgisonline.com/ArcGIS/rest/services/SanFrancisco/311Incidents/FeatureServer/0/updateFeatures/?&amp;amp;f=json"&gt;http://sampleserver3.arcgisonline.com/ArcGIS/rest/services/SanFrancisco/311Incidents/FeatureServer/0/updateFeatures/?&amp;amp;f=json&lt;/A&gt;"&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: courier new,courier;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; updateAttr = [&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: courier new,courier;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: courier new,courier;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "attributes" : {&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: courier new,courier;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "objectid": 12976095,&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: courier new,courier;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "address" : "66TH ST and HARRISON ST"&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: courier new,courier;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: courier new,courier;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: courier new,courier;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ]&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: courier new,courier;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; headers = {"Content-type": "application/json", "Accept": "text/plain"}&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: courier new,courier;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; r = requests.post(updateBaseURL, json=updateAttr,headers=headers)&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Here is the code I use for the HTTPConnection method:&lt;BR /&gt;&amp;nbsp; &lt;SPAN style="font-family: courier new,courier;"&gt;&amp;nbsp; updateAttr = [&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: courier new,courier;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: courier new,courier;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "attributes" : {&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: courier new,courier;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "objectid": 12976095,&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: courier new,courier;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "address" : "66TH ST and HARRISON ST"&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: courier new,courier;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: courier new,courier;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: courier new,courier;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ]&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: courier new,courier;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; headers = {"Content-type": "application/json", "Accept": "text/plain"}&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: courier new,courier;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; conn = httplib.HTTPConnection('sampleserver3.arcgisonline.com')&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: courier new,courier;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; conn.request("POST", "/ArcGIS/rest/services/SanFrancisco/311Incidents/FeatureServer/0/updateFeatures/?f=json", json.dumps(updateAttr), headers)&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;How Can I make this work?&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 30 Dec 2014 04:53:20 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcgis-rest-apis-and-services-questions/updatefeature-rest-api-python-script-unexpected/m-p/337708#M1643</guid>
      <dc:creator>JosephMootz1</dc:creator>
      <dc:date>2014-12-30T04:53:20Z</dc:date>
    </item>
    <item>
      <title>Re: UpdateFeature REST API Python Script Unexpected Error</title>
      <link>https://community.esri.com/t5/arcgis-rest-apis-and-services-questions/updatefeature-rest-api-python-script-unexpected/m-p/337709#M1644</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I would think that something like this would work, but I'm getting a 400 error:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;import urllib, urllib2, json

updateAttr = [{"attributes" : {"objectid": 12988724, "address" : "1217 2ND AVE some change"}}]
&lt;SPAN&gt;service_url = r"&lt;/SPAN&gt;&lt;A class="jive-link-external-small" href="http://sampleserver3.arcgisonline.com/ArcGIS/rest/services/SanFrancisco/311Incidents/FeatureServer/0" rel="nofollow noopener noreferrer" target="_blank"&gt;http://sampleserver3.arcgisonline.com/ArcGIS/rest/services/SanFrancisco/311Incidents/FeatureServer/0&lt;/A&gt;&lt;SPAN&gt;"&lt;/SPAN&gt;

params = urllib.urlencode({'f': 'json', 'features': updateAttr})
req = urllib2.Request("{0}/updateFeatures/?{1}".format(service_url, params))

response = urllib2.urlopen(req)
jsonResult = json.load(response)
print jsonResult&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'courier new', courier; font-size: 8pt;"&gt;{u'error': {u'message': u'Unable to complete&amp;nbsp; operation.', u'code': 400, u'details': [u'Unable to update features']}}&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The ObjectID in your example does not seem to exist...&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sat, 11 Dec 2021 15:59:30 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcgis-rest-apis-and-services-questions/updatefeature-rest-api-python-script-unexpected/m-p/337709#M1644</guid>
      <dc:creator>XanderBakker</dc:creator>
      <dc:date>2021-12-11T15:59:30Z</dc:date>
    </item>
    <item>
      <title>Re: UpdateFeature REST API Python Script Unexpected Error</title>
      <link>https://community.esri.com/t5/arcgis-rest-apis-and-services-questions/updatefeature-rest-api-python-script-unexpected/m-p/337710#M1645</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I got the following code to work based on your suggestion. Thanks so much. I think the key I was missing was formatting the parameters with "features"&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;OL class="dp-py" start="1"&gt;&lt;LI class="alt"&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; updateBaseURL = "&lt;/SPAN&gt;&lt;A class="jive-link-external-small" href="http://sampleserver3.arcgisonline.com/ArcGIS/rest/services/SanFrancisco/311Incidents/FeatureServer/0/updateFeatures" rel="nofollow" target="_blank"&gt;http://sampleserver3.arcgisonline.com/ArcGIS/rest/services/SanFrancisco/311Incidents/FeatureServer/0/updateFeatures&lt;/A&gt;&lt;SPAN&gt;"&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI&gt;updateAttr = [{"attributes" : {"objectid": 12994837, "address" : "1217 2ND AVE some change"}}]&lt;/LI&gt;&lt;LI&gt;params = urllib.urlencode({'f': 'json', 'features': updateAttr})&lt;/LI&gt;&lt;LI&gt;updateURL = urllib2.Request(updateBaseURL,params)&lt;/LI&gt;&lt;LI&gt;response = urllib2.urlopen(updateURL)&lt;/LI&gt;&lt;LI&gt;jsonResult = json.load(response)&lt;/LI&gt;&lt;LI&gt;print jsonResult&lt;/LI&gt;&lt;/OL&gt;&lt;P&gt;&amp;nbsp; &lt;/P&gt;&lt;P&gt;Thanks again.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 31 Dec 2014 05:59:06 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcgis-rest-apis-and-services-questions/updatefeature-rest-api-python-script-unexpected/m-p/337710#M1645</guid>
      <dc:creator>JosephMootz1</dc:creator>
      <dc:date>2014-12-31T05:59:06Z</dc:date>
    </item>
  </channel>
</rss>

