AnsweredAssumed Answered

cursor.da.updateRow(row) Parameters

Question asked by hwigell_extenetsystems on Nov 15, 2016
Latest reply on Nov 16, 2016 by blake.terhune

Currently, I am attempting to write a script in python 2.7.11 using arcpy.da.update.cursor  Essentially, I have an original script that works, which I need to rewrite and shorten. The original script is posted below.    The script is for a tool in ArcGIS used to calculate a desired number of Circuit ID's for the appropriate carrier.  Based on the input, the IDs are written back on to a table.

     Any help with the rewrite would be much appreciated. The question with this script is, should there be additional parameters in the line <cursor.da.updateRow(row)>.  The major issue, populating data back, seems to be with the with arcpy.da.cursor.update.  Additional info:  I wrote both of the scripts utilizing itertools (iterate), thinking I could replicate the pattern of the table quickly. The rest of the code, other than the update of the CircuitIDs, is identical. 

:
1) Attempt. Updated from last post. Uses itertools combination_with_replacement. See itertools python doc for more info.
with arcpy.da.UpdateCursor(nodeFeatures, fields) as cursor:
    for row in cursor:
            def combinations_with_replacement(iterable, 10):
                if numIDs >= "1"
                and if numIDs <="10"
                    # combination_with_replacement(10,(1,'02')) --> 1,'03' 3,'05' 4,'06' 5,'07' 6,'04' 7,'05' 8,'06' 9,'07' 10,'08'
                    pool = tuple(iterable)
                    n = 1
                    r = 10
                    len(s)=75
                    range(i)==numIDs
                    cycles=range(n, n+1)
                    indices(i) = row[i+3] = ["(" + row[0] + ") - (" + row[1] + ") - (" + row[2] + ") - (%02i)" %(i+1)
                    else:
                    return:

        elif numIDs =="0":
                row[3] = None
                row[4] = None
                row[5] = None
                row[6] = None
                row[7] = None
                row[8] = None
                row[9] = None
                row[10] = None
                row[11] = None
                row[12] = None

        else:
                cursor.updateRow(row):

2)The original code(My work only fills in for the section of "Update the appropriate number of Circuit ID fields"):
# ###################################################################################################
# Import system modules
# ###################################################################################################

 

import arcpy

 


# ###################################################################################################
# Set universal variables
# ###################################################################################################

 

nodeFeatures = r'OSP Mapping Layers\Node Locations'
numIDs = arcpy.GetParameterAsText(0)
fields = ['ExteNetNodeID', 'ProjectHub', 'ProjectCarrier', 'CircuitID1', 'CircuitID2', 'CircuitID3', 'CircuitID4', 'CircuitID5', 'CircuitID6', 'CircuitID7', 'CircuitID8', 'CircuitID9', 'CircuitID10']

 


# #########################
# Update the appropriate number of Circuit ID fields
# #########################

 

with arcpy.da.UpdateCursor(nodeFeatures, fields) as cursor:
    for row in cursor:
        if numIDs == "1":
            row[3] = "(" + row[0] + ") - (" + row[1] + ") - (" + row[2] + ") - (01)"
            cursor.updateRow(row)
        elif numIDs == "2":
            row[3] = "(" + row[0] + ") - (" + row[1] + ") - (" + row[2] + ") - (01)"
            row[4] = "(" + row[0] + ") - (" + row[1] + ") - (" + row[2] + ") - (02)"
            cursor.updateRow(row)
        elif numIDs == "3":
            row[3] = "(" + row[0] + ") - (" + row[1] + ") - (" + row[2] + ") - (01)"
            row[4] = "(" + row[0] + ") - (" + row[1] + ") - (" + row[2] + ") - (02)"
            row[5] = "(" + row[0] + ") - (" + row[1] + ") - (" + row[2] + ") - (03)"
            cursor.updateRow(row)
        elif numIDs == "4":
            row[3] = "(" + row[0] + ") - (" + row[1] + ") - (" + row[2] + ") - (01)"
            row[4] = "(" + row[0] + ") - (" + row[1] + ") - (" + row[2] + ") - (02)"
            row[5] = "(" + row[0] + ") - (" + row[1] + ") - (" + row[2] + ") - (03)"
            row[6] = "(" + row[0] + ") - (" + row[1] + ") - (" + row[2] + ") - (04)"
            cursor.updateRow(row)
        elif numIDs == "5":
            row[3] = "(" + row[0] + ") - (" + row[1] + ") - (" + row[2] + ") - (01)"
            row[4] = "(" + row[0] + ") - (" + row[1] + ") - (" + row[2] + ") - (02)"
            row[5] = "(" + row[0] + ") - (" + row[1] + ") - (" + row[2] + ") - (03)"
            row[6] = "(" + row[0] + ") - (" + row[1] + ") - (" + row[2] + ") - (04)"
            row[7] = "(" + row[0] + ") - (" + row[1] + ") - (" + row[2] + ") - (05)"
            cursor.updateRow(row)
        elif numIDs == "6":
            row[3] = "(" + row[0] + ") - (" + row[1] + ") - (" + row[2] + ") - (01)"
            row[4] = "(" + row[0] + ") - (" + row[1] + ") - (" + row[2] + ") - (02)"
            row[5] = "(" + row[0] + ") - (" + row[1] + ") - (" + row[2] + ") - (03)"
            row[6] = "(" + row[0] + ") - (" + row[1] + ") - (" + row[2] + ") - (04)"
            row[7] = "(" + row[0] + ") - (" + row[1] + ") - (" + row[2] + ") - (05)"
            row[8] = "(" + row[0] + ") - (" + row[1] + ") - (" + row[2] + ") - (06)"
            cursor.updateRow(row)
        elif numIDs == "7":
            row[3] = "(" + row[0] + ") - (" + row[1] + ") - (" + row[2] + ") - (01)"
            row[4] = "(" + row[0] + ") - (" + row[1] + ") - (" + row[2] + ") - (02)"
            row[5] = "(" + row[0] + ") - (" + row[1] + ") - (" + row[2] + ") - (03)"
            row[6] = "(" + row[0] + ") - (" + row[1] + ") - (" + row[2] + ") - (04)"
            row[7] = "(" + row[0] + ") - (" + row[1] + ") - (" + row[2] + ") - (05)"
            row[8] = "(" + row[0] + ") - (" + row[1] + ") - (" + row[2] + ") - (06)"
            row[9] = "(" + row[0] + ") - (" + row[1] + ") - (" + row[2] + ") - (07)"
            cursor.updateRow(row)
        elif numIDs == "8":
            row[3] = "(" + row[0] + ") - (" + row[1] + ") - (" + row[2] + ") - (01)"
            row[4] = "(" + row[0] + ") - (" + row[1] + ") - (" + row[2] + ") - (02)"
            row[5] = "(" + row[0] + ") - (" + row[1] + ") - (" + row[2] + ") - (03)"
            row[6] = "(" + row[0] + ") - (" + row[1] + ") - (" + row[2] + ") - (04)"
            row[7] = "(" + row[0] + ") - (" + row[1] + ") - (" + row[2] + ") - (05)"
            row[8] = "(" + row[0] + ") - (" + row[1] + ") - (" + row[2] + ") - (06)"
            row[9] = "(" + row[0] + ") - (" + row[1] + ") - (" + row[2] + ") - (07)"
            row[10] = "(" + row[0] + ") - (" + row[1] + ") - (" + row[2] + ") - (08)"
            cursor.updateRow(row)
        elif numIDs == "9":
            row[3] = "(" + row[0] + ") - (" + row[1] + ") - (" + row[2] + ") - (01)"
            row[4] = "(" + row[0] + ") - (" + row[1] + ") - (" + row[2] + ") - (02)"
            row[5] = "(" + row[0] + ") - (" + row[1] + ") - (" + row[2] + ") - (03)"
            row[6] = "(" + row[0] + ") - (" + row[1] + ") - (" + row[2] + ") - (04)"
            row[7] = "(" + row[0] + ") - (" + row[1] + ") - (" + row[2] + ") - (05)"
            row[8] = "(" + row[0] + ") - (" + row[1] + ") - (" + row[2] + ") - (06)"
            row[9] = "(" + row[0] + ") - (" + row[1] + ") - (" + row[2] + ") - (07)"
            row[10] = "(" + row[0] + ") - (" + row[1] + ") - (" + row[2] + ") - (08)"
            row[11] = "(" + row[0] + ") - (" + row[1] + ") - (" + row[2] + ") - (09)"
            cursor.updateRow(row)
        elif numIDs == "10":
            row[3] = "(" + row[0] + ") - (" + row[1] + ") - (" + row[2] + ") - (01)"
            row[4] = "(" + row[0] + ") - (" + row[1] + ") - (" + row[2] + ") - (02)"
            row[5] = "(" + row[0] + ") - (" + row[1] + ") - (" + row[2] + ") - (03)"
            row[6] = "(" + row[0] + ") - (" + row[1] + ") - (" + row[2] + ") - (04)"
            row[7] = "(" + row[0] + ") - (" + row[1] + ") - (" + row[2] + ") - (05)"
            row[8] = "(" + row[0] + ") - (" + row[1] + ") - (" + row[2] + ") - (06)"
            row[9] = "(" + row[0] + ") - (" + row[1] + ") - (" + row[2] + ") - (07)"
            row[10] = "(" + row[0] + ") - (" + row[1] + ") - (" + row[2] + ") - (08)"
            row[11] = "(" + row[0] + ") - (" + row[1] + ") - (" + row[2] + ") - (09)"
            row[12] = "(" + row[0] + ") - (" + row[1] + ") - (" + row[2] + ") - (10)"
            cursor.updateRow(row)
        elif numIDs =="0":
            row[3] = None
            row[4] = None
            row[5] = None
            row[6] = None
            row[7] = None
            row[8] = None
            row[9] = None
            row[10] = None
            row[11] = None
            row[12] = None
            cursor.updateRow(row)
        else:
            pass

 

Like (0) Share
5 comments4 new updates
Heather Wigell
The question with this script is, should there be additional parameters in the line <cursor.updateRow(row)>.  The major issue, populating data back, seems to be with the with cursor.update.  Additional info:  I wrote both of the scripts utilizing itertools, thinking I could replicate the pattern of the table quickly. The rest of the code, other than the update of the CircuitIDs, is identical.   <a href>UpdateCursor—Help | ArcGIS for Desktop </>

Outcomes