Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import csv,arcpy,codecs,ast csvfile = r'\Cd1001-f18gisClientsEnbridgeLine4_MP66_75Project_DataTablemw_bh_loc_20171115.csv'
- fc = r'Q:ClientsEnbridgeLine4_MP66_75Project_Databh_mw_loc.shp'
- with codecs.open(csvfile,'rb',encoding="utf-8-sig") as csvFile:
- csvheader1 = [x.strip() for x in next(csvFile).split(',')]
- print csvheader1
- for row in csv.reader(csvFile):
- print row
- gdbFields = arcpy.ListFields(fc) insertList = []
- for x in range (0,len(csvheader1)):
- insertList.append('csvrow['+str(x)+']') insertList.append('(float(csvrow[1]),float(csvrow[2]))') csvheader2 = list(csvheader1) csvheader2.append("SHAPE@XY") insertList2 = tuple(csvheader2)
- print csvheader2
- newFields = [x for x in csvheader1 if x not in gdbFields] print newFields for x in newFields:
- arcpy.AddField_management(fc,x,'TEXT','','','200') gdbNewFields = gdbFields + newFields insertFields = csvheader1.append("SHAPE@XY") fcWellIDValues = [row[0] for row in arcpy.da.SearchCursor(fc, "Well_ID")] print fcWellIDValues csvDict = csv.DictReader(codecs.open(csvfile, encoding ="utf-8-sig")) for csvrow in csvDict:
- if csvrow["Well_ID"] in fcWellIDValues:
- with arcpy.da.UpdateCursor(fc, gdbNewFields) as cursor:
- for row in cursor:
- if row["Well_ID"] == csv["Well_ID"]:
- for x in newFields:
- row[x] == csvrow[x]
- cursor.updateRow(row)
- elif csvrow["Well_ID"] not in fcWellIDValues:
- with arcpy.da.InsertCursor(fc,csvheader2)as cursor:
- cursor.insertRow([insertList2])
- print "done"
- Traceback (most recent call last):
- File "C:UsersvlawDesktopApplicationcsv_mwloader.py", line 47, in <module>
- cursor.insertRow([insertList2])
- TypeError: sequence size must match size of the row
Add Comment
Please, Sign In to add comment