Quantcast
Channel: Forums - Python
Viewing all articles
Browse latest Browse all 2485

field mapping wih TableToTable_conversion

$
0
0
Hello,

I'm attempting to write a script that takes in a CSV file and utilizes an arcpy.TableToTable_conversion() to create a table in a geodatabase. I would like to take advantage of Field Mapping functionality in arcpy so that I can reliably/consistently create a table with the same attributes.

Based on some direction I've found on this forum, I've tried the following code. It creates a table but does not honor the length values of the various string fields (i.e. all string fields are length = 255):

Code:

def GetFieldMaps():
    tblFieldMaps = []
    tblFieldMaps.append(["PropID"        ,"PropID"        ,"String",8])
    tblFieldMaps.append(["Taxlot"        ,"PropID"        ,"String",15])
    tblFieldMaps.append(["StreetNo"      ,"StreetNo"      ,"String",11])
    tblFieldMaps.append(["StreetNoSx"    ,"StreetNoSx"    ,"String",3])
    tblFieldMaps.append(["StreetName"    ,"StreetName"    ,"String",24])
    tblFieldMaps.append(["StreetType"    ,"StreetType"    ,"String",2])
    tblFieldMaps.append(["StreetDirPx"    ,"StreetDirPx"    ,"String",2])
    tblFieldMaps.append(["StreetDirSx"    ,"StreetDirSx"    ,"String",2])
    tblFieldMaps.append(["Zip3"          ,"Zip3"          ,"Short" ,3])
    tblFieldMaps.append(["SubName"        ,"SubName"        ,"String",40])
    tblFieldMaps.append(["Block"          ,"Block"          ,"String",3])
    tblFieldMaps.append(["Lot"            ,"Lot"            ,"String",3])
    tblFieldMaps.append(["Acres"          ,"Acres"          ,"Double",8,2])
    tblFieldMaps.append(["StatClass"      ,"StatClass"      ,"String",4])
    tblFieldMaps.append(["RMVLand"        ,"RMVLand"        ,"Long"  ,9])
    tblFieldMaps.append(["RMVImp"        ,"RMVImp"        ,"Long"  ,9])
    tblFieldMaps.append(["RMVTotal"      ,"RMVTotal"      ,"Long"  ,9])
    tblFieldMaps.append(["AssdValue"      ,"AssdValue"      ,"Long"  ,9])
    tblFieldMaps.append(["LastApprDate"  ,"LastApprDate"  ,"String",8])
    tblFieldMaps.append(["Zoning"        ,"Zoning"        ,"String",7])
    tblFieldMaps.append(["CodeArea"      ,"CodeArea"      ,"String",8])
    tblFieldMaps.append(["MultCodeArea"  ,"MultCodeArea"  ,"String",1])
    tblFieldMaps.append(["PropClass"      ,"PropClass"      ,"String",3])
    tblFieldMaps.append(["SalePrice"      ,"SalePrice"      ,"Long"  ,9])
    tblFieldMaps.append(["SaleDateText"  ,"SaleDateText"  ,"String",8])
    tblFieldMaps.append(["SaleCode"      ,"SaleCode"      ,"String",2])
    tblFieldMaps.append(["YearConst"      ,"YearConst"      ,"String",4])
    tblFieldMaps.append(["GrossLivingArea","GrossLivingArea","String",5])
    tblFieldMaps.append(["OwnerName"      ,"OwnerName"      ,"String",32])
    tblFieldMaps.append(["OwnerAdd"      ,"OwnerAdd"      ,"String",32])
    tblFieldMaps.append(["OwnerAdd1"      ,"OwnerAdd1"      ,"String",32])
    tblFieldMaps.append(["OwnerAdd2"      ,"OwnerAdd2"      ,"String",32])
    tblFieldMaps.append(["OwnerCity"      ,"OwnerCity"      ,"String",16])
    tblFieldMaps.append(["OwnerState"    ,"OwnerState"    ,"String",2])
    tblFieldMaps.append(["OwnerZip"      ,"OwnerZip"      ,"String",5])
    tblFieldMaps.append(["DeedRef"        ,"DeedRef"        ,"String",11])
    tblFieldMaps.append(["MaintCode"      ,"MaintCode"      ,"String",5])
    tblFieldMaps.append(["NbrhdCode"      ,"NbrhdCode"      ,"String",10])
    tblFieldMaps.append(["CurLeviedTax"  ,"CurLeviedTax"  ,"Double",11,2])
    tblFieldMaps.append(["SaleDate"      ,"SaleDate"      ,"Date"])

def GetFieldMappings(out_table,fieldmaplist):
    try:
        fieldmappings = arcpy.FieldMappings()
        for field in fieldmaplist:
            fldmap = arcpy.FieldMap()
            fldmap.addInputField(out_table,field[0])
            fld = fldmap.outputField
            fld.name = field[1]
            fld.aliasName = field[1]
            fld.type = field[2]
            fld.length = field[3]
            fldmap.outputField = fld
            fieldmappings.addFieldMap(fldmap)
            print "Added field %s" % (field[1])
        return fieldmappings
    except Exception as e:
        print e

tableFieldMaps = GetFieldMaps()
fieldmappings = GetFieldMappings(out_table,tableFieldMaps)

arcpy.TableToTable_conversion(input_csv,gdbfolder,table_name,fieldmappings)


Viewing all articles
Browse latest Browse all 2485

Latest Images

Trending Articles



Latest Images