1

I am trying to set a field value in one feature class (TRU) based on the value of a field in a separate feature class (DerivedBoundaries) that contains the first, using python in ArcGIS 10.1.

I have written a script that iterates through each site boundary, selects all of the TRU features inside of it, and does that pretty well. However, I cannot seem to get my head around how the arcpy.CalculateField_management() function operates.

#Build an array and fill it with all the TempIDs numbers present in the data table
rows = arcpy.SearchCursor(lyr_DerivedBoundaries)
row = rows.next()
TRU_rows = arcpy.UpdateCursor(lyr_TRU)
TRU_row = rows.next()
while row:
 a = row.TempID
 TempIDs.append(a)
 row = rows.next()
 #Set Count equal to the length of the array created in the while loop
 Count = len(TempIDs)
while Position < Count: #iterate through each individual feature by using a definition query
 query = "[TempID] = " + "'" + TempIDs[Position] + "'"
 lyr_DerivedBoundaries.definitionQuery = query
 #center on feature
 df.panToExtent(lyr_DerivedBoundaries.getSelectedExtent())
 #Select all of the TRU Cells within the active Site Boundary
 arcpy.SelectLayerByLocation_management(lyr_TRU,"COMPLETELY_WITHIN",lyr_DerivedBoundaries,0,"NEW_SELECTION")
 #Set [Assoc_Site] equal to lyr_DerivedBoundaries.[TempID]
 hopper = '""""' + str(TempIDs[Position]) + '""""'
 arcpy.CalculateField_management("TRU","Assoc_Site",hopper,"VB","#")

I have been attempting to make the third argument in the CalculateField function operate based on the syntax I am seeing from copying a successful CalculateField operation as a python snippet from the results window in ArcMap.

Any help is greatly appreciated, I'm open to the possibility that I am going about this is a roundabout way and that there is a better way.

Thanks!

Edit: Just in case, here is the text of the error message I get when the script hits the line with the CalculateField function on it:

Runtime error Traceback (most recent call last): File "", line 43, in File "c:\program files (x86)\arcgis\desktop10.1\arcpy\arcpy\management.py", line 3129, in CalculateField raise e ExecuteError: ERROR 999999: Error executing function. Expected end of statement Failed to execute (CalculateField).

PolyGeo
65.5k29 gold badges115 silver badges349 bronze badges
asked Dec 18, 2012 at 18:35

1 Answer 1

1

Fixed! Amazing what a few minutes away from the code will do...

The problem was that I was including too many quotation marks when I set the value for 'hopper'. I changed:

hopper = '""""' + str(TempIDs[Position]) + '""""'

To:

hopper = '"' + str(TempIDs[Position]) + '"'

And now it runs just like I want it to!

answered Dec 18, 2012 at 19:07

Your Answer

Draft saved
Draft discarded

Sign up or log in

Sign up using Google
Sign up using Email and Password

Post as a guest

Required, but never shown

Post as a guest

Required, but never shown

By clicking "Post Your Answer", you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.