3

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)
1
  • 1
    You've used an equivalence operator, so exprrsion is set to False, and then use undefined variable exp, which ought to be a Python syntax error. Please remember to include the error in your question.
    – Vince
    Sep 18, 2021 at 18:24

1 Answer 1

5

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)

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.