ArcPy Field Calculator – Using Calculate Field with ArcPy

arcpyfield-calculator

I have field that includes 2500 records with name RASTERVALU and type Double. I want to add another field with name Qi. My expression for Qi is equal to RASTERVALU but I don't know correct syntax.

infc = "E:/gis payannameh/Pychram_tabu/extractVP/net1.shp"
arcpy.AddField_management(infc, "Qi", "DOUBLE")
exp =  "Qi" == "!RATERVALU!"
arcpy.CalculateField_management(infc,"Qi", exp)

Best Answer

Try this:

import arcpy

infc = r"E:/gis payannameh/Pychram_tabu/extractVP/net1.shp"

arcpy.AddField_management(in_table=infc, field_name="Qi", field_type="DOUBLE")
arcpy.CalculateField_management(in_table=infc, field="Qi", expression='!RASTERVALUE!', expression_type="PYTHON")

I almost never use Calculate Field in Python, instead arcpy.da.UpdateCursor. I think it is more versatile and easier to get the correct syntax:

with arcpy.da.UpdateCursor(infc, ['RASTERVALUE','Qi']) as cursor:
    for row in cursor:
        row[1] = row[0]
        cursor.updateRow(row)
Related Question