2014-09-29 37 views
0

我试着去存储通过一个元组从一个循环获得到一个名为ROW_1arcpy计算字符串字段:任何想法如何解决这个问题?

的代码是这样

for creekclass in listOfClassTuples: 

       (classname, Permanency, creekWidth, score) = creekclass 
       arcpy.AddMessage(int(score)) 

       bufferDistance = creekWidth*0.5 
       if crossingType == "INTERSECT": 
        stringBuffer = "" 
       else: 
        stringBuffer = "%s Meters" % str(bufferDistance) 
        arcpy.AddMessage(str(bufferDistance)) 
       arcpy.MakeFeatureLayer_management(sourceLayer,"JUST_SELECTED", fieldName +" = '"+ classname + "'") 
       #arcpy.SelectLayerByAttribute_management("JUST_SELECTED","NEW_SELECTION",fieldName+" = '"+ classname + "'") 
       #arcpy.SelectLayerByAttribute_management("JUST_SELECTED","SUBSET_SELECTION",fieldName2+" = '"+ Permanency + "'") 
       #arcpy.CopyFeatures_management("JUST_SELECTED", "A:\Temporary\TempLayer1.shp")       
       arcpy.SelectLayerByLocation_management(targetLayer, crossingType, 
                 "JUST_SELECTED", stringBuffer, "NEW_SELECTION") 
       ## classname = classname.lower() 

       if outputField1 != "":           

          arcpy.CalculateField_management(targetLayer, outputField1, classname) 
          #arcpy.AddMessage(str(classname)) 

          #arcpy.AddMessage(str(outputField1)) 

       arcpy.CalculateField_management(targetLayer, outputField2, int(score)) 


       arcpy.Delete_management("Just_selected") 
       arcpy.SelectLayerByAttribute_management(targetLayer, "CLEAR_SELECTION") 

    except: 

     arcpy.AddMessage("Function failed") 
     arcpy.AddMessage(arcpy.GetMessages()) 

当变量的类名等于出现的问题“,虚拟流场的字符串值“:

类名= “从代码采取以下行虚拟流”

上述

if outputField1 != "":           

          arcpy.CalculateField_management(targetLayer, outputField1, classname) 

回答

1

从ESRI帮助语法:

CalculateField_management (in_table, field, expression, {expression_type}, {code_block}) 

第三个参数是一个SQL表达式。由于您传递的字符串中可能有空格,因此表达式需要被单引号“'包围。

像这样的东西应该工作:

if outputField1 != "":           

         arcpy.CalculateField_management(targetLayer, outputField1, "".join(("'",classname,"'")) 
相关问题