1

I need to append two shapefiles together. The append tool works within the ArcMap toolboxes AND Python window, but it does not work when copying over the python snippet to PyScripter. It'll completely run through but won't produce values within the fields (all values will be empty or null).

I'm assuming it has something to do with the FieldMapping() objects?

import arcpy
arcpy.env.overwriteOutput = True
arcpy.env.workspace = r"C:\Users\Documents\ArcGIS\Default.gdb"
tc = r"testing_append"
changesshp = r"C:\Users\gfrederick\Documents\Scripts\changes.shp"
lyr1 = arcpy.MakeFeatureLayer_management(tc, "tc_lyr")
lyr2 = arcpy.MakeFeatureLayer_management(changesshp, "change.lyr")
arcpy.Append_management(lyr2, lyr1, schema_type="NO_TEST", field_mapping="""RECORDNUM "RECORDNUM" true false false 19 Double 10 18 ,First,#,changes_new,RECORDNUM,-1,-1;TAKENBY "TAKENBY" true false false 50 Text 0 0 ,First,#,changes_new,TAKENBY,-1,-1;SETDATE "SETDATE" true true false 8 Date 0 0 ,First,#,changes_new,SETDATE,-1,-1;SETYEAR "SETYEAR" true false false 4 Text 0 0 ,First,#;MCD "MCD" true false false 50 Text 0 0 ,First,#,changes_new,MCD,-1,-1;RDPREFIX "RDPREFIX" true false false 50 Text 0 0 ,First,#,changes_new,RDPREFIX,-1,-1;ROUTE "ROUTE" true false false 19 Double 10 18 ,First,#,changes_new,ROUTE,-1,-1;ROAD "ROAD" true false false 50 Text 0 0 ,First,#,changes_new,ROAD,-1,-1;CNTDIR "CNTDIR" true false false 50 Text 0 0 ,First,#,changes_new,CNTDIR,-1,-1;FROMLMT "FROMLMT" true false false 50 Text 0 0 ,First,#,changes_new,FROMLMT,-1,-1;TOLMT "TOLMT" true false false 50 Text 0 0 ,First,#,changes_new,TOLMT,-1,-1;TYPE "TYPE" true false false 20 Text 0 0 ,First,#,changes_new,TYPE,-1,-1;RDSUFFIX "RDSUFFIX" true false false 15 Text 0 0 ,First,#,changes_new,RDSUFFIX,-1,-1;LATITUDE "LATITUDE" true false false 19 Double 8 18 ,First,#,changes_new,LATITUDE,-1,-1;LONGITUDE "LONGITUDE" true false false 19 Double 8 18 ,First,#,changes_new,LONGITUDE,-1,-1;FACTOR "FACTOR" true false false 19 Double 8 18 ,First,#,changes_new,FACTOR,-1,-1;AXLE "AXLE" true false false 19 Double 8 18 ,First,#,changes_new,AXLE,-1,-1;AADT "AADT" true false false 9 Long 0 9 ,First,#,changes_new,AADT,-1,-1;UPDATED "UPDATED" true true false 8 Date 0 0 ,First,#;CO_NAME "CO_NAME" true false false 35 Text 0 0 ,First,#;MUN_NAME "MUN_NAME" true false false 40 Text 0 0 ,First,#""", subtype="")
PolyGeo
65.5k29 gold badges115 silver badges350 bronze badges
asked Dec 21, 2015 at 19:56
2
  • 1
    It is too hard to tell from the massive field mapping string. It would probably be easier to set up the field mapping using the FieldMap class. Also, I'm not sure, but it looks like it is looking for a table called "change_new" for the target layer. It appears that the sample you're trying is using a layer called "change". Commented Dec 21, 2015 at 20:02
  • Rather than providing an answer within your question, it is better to do that as an answer. Self-answering is fine to do here, and encouraged. Commented Dec 22, 2015 at 20:49

1 Answer 1

1

There a code example:

import arcpy
tc = r"tc.shp"
changesshp = r"_changes.shp"
fieldmapping = arcpy.FieldMap()
fieldmapping.addTable(changesshp)
arcpy.Append_management(changesshp, tc, "NO_TEST", fieldmapping)
print('YAAASSSSS')
wittich
2,3661 gold badge19 silver badges31 bronze badges
answered Dec 23, 2015 at 21:51

Your Answer

Draft saved
Draft discarded

Sign up or log in

Sign up using Google
Sign up using Email and Password

Post as a guest

Required, but never shown

Post as a guest

Required, but never shown

By clicking "Post Your Answer", you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.