Below is the script I have been attempting to run, I have cannibalized it from several python scripts I have found online.
with arcpy.da.UpdateCursor(fcPath, fcFields) as cursor:
for row in cursor:
joinID = row[0]
relatedRecord = dict_RelTbl[joinID]
currentPosition = relatedRecord[2]
row[1] = currentPosition
cursor.updateRow(row)
print ("sucess")
After I run this portion of the script I get this error
KeyError Traceback (most recent call last)
In [14]:
Line 4: relatedRecord = dict_RelTbl[joinID]
KeyError: '{F9F6909A-83FE-4C56-9320-28BC1C37F98A}'
How do I solve this? I have not found anything online that has been helpful.
import arcpy
workspace = r"fgdb"
fcPath = r"feature_layer"
relatedTblPath = r"table"
print ("vehicle inventory and vehicle inspection paths set")
edit = arcpy.da.Editor(r"fgdb")
edit.startEditing(False, True)
edit.startOperation()
print ('in edit session')
relTblFields = ["relglobal", "oildate"]
fcFields = ["GlobalID", "oildate"]
print ("field dict's created")
dict_RelTbl = {}
dateQry="oildate IS NOT NULL"
#Loop through related table and store only the max date for each unique ID.
with arcpy.da.SearchCursor(relatedTblPath, relTblFields) as cursor:
for row in cursor:
joinID = row[0]
if joinID not in dict_RelTbl.keys():
dict_RelTbl[joinID] = row
# if the key is in the dictionary already (one to many relationship), compare the dates and keep the most recent date
else:
curDate = dict_RelTbl[joinID][1]
if row[1] > curDate:
dict_RelTbl[joinID] = row
with arcpy.da.UpdateCursor(fcPath, fcFields) as cursor:
for row in cursor:
joinID = row[0]
relatedRecord = dict_RelTbl[joinID]
currentPosition = relatedRecord[2]
row[1] = currentPosition
cursor.updateRow(row)
print ("sucess")
edit.stopOperation()
edit.stopEditing(True)
print ("done editing")
Thank you all!