I've been trying to create a python script that will update certain fields in the arcgis attribute table. I have attempted to do this by using the update cursor to update a field based on another field value found in the same row.
Here is the code I used:
import arcpy
fc = "C:\Users\maureen\Documents\ArcGIS\EDRN\EDRN_LINK.shp"
fields = ["FID", "RIVERNAME"]
with arcpy.da.UpdateCursor(fc, fields) as cursor:
for row in cursor:
if row[0] = 4401:
row[1] = "Aire"
cursor.updateRow(row)
Unfortunately, when I run this in ArcMap it returns the following syntax error:
Parsing error SyntaxError: invalid syntax (line 9)
Does anyone have any idea where I'm going wrong? I've researched this script a fair bit and can't see any obvious errors.
-
I suppose you ment if row[0] == 4401: // ... You forgot the double-equal-sign, that´s it I thinkMakePeaceGreatAgain– MakePeaceGreatAgain2014年06月20日 14:49:24 +00:00Commented Jun 20, 2014 at 14:49
-
In addition to the answers below, make sure the "RIVERNAME" field is a text field.Aaron– Aaron ♦2014年06月20日 15:07:50 +00:00Commented Jun 20, 2014 at 15:07
-
from @Aaron above - I run into Subtypes sometimes and bang my head on the wall until I realize I'm looking for an integer value. The == is the main problem though.gm70560– gm705602014年06月21日 03:36:25 +00:00Commented Jun 21, 2014 at 3:36
1 Answer 1
For comparison of 'equals' you need to use a double equals sign '=='
if row[0] == 4401:
row[1] = "Aire"
cursor.updateRow(row)
A single equals sign is the assignment operator in python.