2014-09-29 153 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,"'")) 
相關問題