Вы можете попробовать приведенный ниже код, который будет просто игнорировать любую ошибку во время выполнения функций Join или Calculation the Field и переходить к следующей итерации цикла. Это может сойти с рук, если вы пишете «одноразовый» сценарий, однако, если вы собираетесь использовать сценарий в будущем или хотите поделиться им с другими, вам следует выяснить, почему параметр [TAX.PARCEL_ID]
вызывает SQL и исправьте ошибку.
С учетом вышесказанного, не видя ваших таблиц и шейп-файлов, трудно определить, что именно является причиной вашей ошибки. Возможно, вам будет полезно перетащить ваши Parcels.shp и Tax.dbf в ArcMap, присоединиться к ним, а затем попробовать использовать инструмент «Рассчитать поле», чтобы убедиться, что ваши параметры верны.
for fc in fcs:
print fc
gp.MakeFeatureLayer(fc + "\\Parcels.shp", "parcs")
joinTable = (fc + "\\TAX.dbf")
try:
gp.AddJoin_management("parcs", "APN", joinTable, "PARCEL_NUM")
gp.CalculateField_management("parcs", "APN2", "[TAX.PARCEL_ID]")
gp.CalculateField_management("parcs", "SIT_FULL_S", "[TAX.SITADDRESS]")
except:
print 'Join or Calculate Field did not work for %s.' % (fc)
Возможно, вы захотите попробовать приведенный ниже синтаксис, исходящий непосредственно из документов .
gp.CalculateField_management("parcs", "APN2", "!TAX.PARCEL_ID!", "PYTHON")