Estoy intentando calcular varios campos que empiezan todos por "B01". Este cálculo consiste en multiplicar los campos por un campo que contiene un porcentaje ("TractPercent") y luego dividir los resultados de esa multiplicación por un campo de población ("BufferPOP").
El problema que tengo es incorporar la variable asociada a mi "bucle for" con mi expresión Python3.
Este es mi código:
import arcpy
### set workspaces
arcpy.env.workspace = r"C:\arcGIS_Shared\Python\Demographics.gdb"
relpath = r'C:\arcGIS_Shared\Python'
p = arcpy.mp.ArcGISProject(relpath + r'\Demographics.aprx')
m = p.listMaps('Map')[0]
layers = m.listLayers("DalyCity_HalfMile_Demographics")
for layer in layers:
print(layer)
DemoFields = arcpy.ListFields(layer, "B01*", "ALL")
for DemoField in DemoFields:
arcpy.CalculateField_management(layer, DemoField, "(+DemoField+ *
!TractPercent!) / !BufferPOP!", "PYTHON3")
print(layer.name + ' ' + DemoField + ' Calculated')
Cuando ejecuto el código de esta manera obtengo el siguiente error, pero no puedo averiguar lo que tengo que cambiar.
ERROR 000622: Failed to execute (Calculate Field). Parameters are not valid.
ERROR 000623: Invalid value type for parameter field