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)
Mohammad hassan moayyedianMohammad hassan moayyedian
asked Sep 18, 2021 at 9:16
1 Answer 1
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)
answered Sep 18, 2021 at 9:41
lang-py
exprrsion
is set toFalse
, and then use undefined variableexp
, which ought to be a Python syntax error. Please remember to include the error in your question.