rowMembers = arcpy.SearchCursor(fc6,qTeam) lMembers = [] for z in rowMembers: mName = z.getValue("Name") lMembers.append(mName) for i in lMembers: wMembers = lMembers arcpy.AddMessage(lMembers) arcpy.AddMessage(wMembers)
Solved! Go to Solution.
FDF_Field_Name = "Member" for index,item in enumerate(lMembers,1): name_field = "{0}{1}".format(FDF_Field_Name,index) txt.write("<</T({0})/V({0}{1})>>\n".format(name_field,item)) arcpy.AddMessage(item)lMembers = ["Joe","Sue","Anne"]
name_field = "Member1" item = "Joe"
for i in lMembers: arcpy.AddMessage(i)
for index,item in enumerate(lMembers): arcpy.AddMessage(index,item)
for i in lMembers:assigns an item, not an index, from the lMembers list for each iteration. The next line:
wMembers = lMembersis probably where your error is occuring. It is trying to extract the i'th value from the list, but since i is a string instead of an integer, the error occurs.
lMembers = i
loop for as many times as there are items in the list for each list item, write that value to a output variable that can then be written out
Here's a better explanation
The list lMembers contains values such as [jon, pete, paul, steve, etc]
when I iterate that list later I want to pull the values from this list and write them to an output, building an FDF file.
The code is attempting to do the followingloop for as many times as there are items in the list for each list item, write that value to a output variable that can then be written out
for item in lMembers: #Write item to output
for item in lMembers: wMembers = item arcpy.AddMessage(item)
txt.write("<</T(item)/V(" + str(name) + ")>>\n")
#arcpy.env.workspace = workspc
arcpy.env.overwriteOutput = "True"
from arcpy import env
# Pull data from Incident_Information FC
fc1="Incident_Information"
rows = arcpy.SearchCursor(fc1)
row = rows.next()
arcpy.AddMessage(fc1)
while row:
# Loop through rowns and pull incident name from Incident_Name field
Incident_Name = row.getValue("Incident_Name")
arcpy.AddMessage("while loop 1")
row = rows.next()
del rows
del row
# Loops through the Assignmets table and read field values to vars
fc2="Assignments"
rows = arcpy.SearchCursor(fc2)
arcpy.AddMessage(fc2)
row = rows.next()
# Pull data from the Assignments feature class aVar from Assignments
while row:
arcpy.AddMessage("Get Assignment Information")
aAssign = row.getValue("Assignments.Assignment_Number")
aDesc = row.getValue("Assignments.Description")
aMiles = row.getValue("Assignments.Mileage")
aInsertion = row.getValue("Assignments.Insertion")
aStatus = row.getValue("Assignments.Status")
aOpPeriod = row.getValue("Assignments.Period")
aTeam = row.getValue("Assignments.Team_Name")
# Pull data from Op Period FC using Period number
arcpy.AddMessage("Matching Operation Period")
fc4 = "Operation_Period"
rowPeriod = arcpy.SearchCursor(fc4, "Period = " + str(aOpPeriod))
# loops through operation periods and reads values into vars based on Op number pVar for Period
for x in rowPeriod:
pWeather = x.getValue("Weather")
pSafety = x.getValue("Safety_Message")
pFreqP = x.getValue("Primary_Comms")
pFreqE = x.getValue("Emergency_Comms")
pPlans = x.getValue("Planning_Chief")
del x
# Pull data from Teams FC using Assignment Number building quesry in var qTeam
arcpy.AddMessage("Matching Teams")
fc5 = "Teams"
qTeam = '"Team_Name"' + "='" + str(aTeam) + "'"
arcpy.AddMessage(qTeam)
rowPeriod = arcpy.SearchCursor(fc5,qTeam)
# loops through Teams and reads values into vars based on Team name tVar for Team
for y in rowPeriod:
tType = y.getValue("Team_Type")
tCallSign = y.getValue("radio_Call_Sign")
tLeader = y.getValue("Leader")
del y
del rowPeriod
# Pull data from Team Members FC using Team Name building query in mVar
arcpy.AddMessage("Matching Team Members")
fc6 = "Team_Members"
qTeam = '"Team_Name"' + "='" + str(aTeam) + "'"
arcpy.AddMessage(qTeam)
rowMembers = arcpy.SearchCursor(fc6,qTeam)
lMembers = []
# loops through Teams and reads values into list lMembers. List = lVar
z = 0
for z in rowMembers:
mName = z.getValue("Name")
lMembers.append(mName)
arcpy.AddMessage(mName)
del z
del rowMembers
arcpy.AddMessage("Building Assignment Number " + str(aAssign))
# Create new fdf file
filename = output + "/" + str(aAssign) + ".fdf"
txt= open (filename, "w")
txt.write("%FDF-1.2\n")
txt.write("%????\n")
txt.write("1 0 obj<</FDF<</F(ICS-204.pdf)/Fields 2 0 R>>>>\n")
txt.write("endobj\n")
txt.write("2 0 obj[\n")
txt.write ("\n")
# Write field names to FDF file
txt.write("<</T(incident_name)/V(" + str(Incident_Name) + ")>>\n")
txt.write("<</T(assignment_number)/V(" + str(aAssign) + ")>>\n")
txt.write("<</T(operational_period)/V(" + str(aOpPeriod) + ")>>\n")
txt.write("<</T(asgn_description)/V(" + str(aDesc) + ")>>\n")
txt.write("<</T(resource_type)/V(" + str(tType) + ")>>\n")
txt.write("<</T(asgn.description)/V(" + str(aDesc) + ")>>\n")
txt.write("<</T(.size_of_assignment)/V(" + str(aMiles) + ")>>\n")
txt.write("<</T(transport_instructions)/V(" + str(aInsertion) + ")>>\n")
txt.write("<</T(radio_call)/V(" + str(tCallSign) + ")>>\n")
txt.write("<</T(freq_command)/V(" + str(pFreqP) + ")>>\n")
txt.write("<</T(freq_command)/V(" + str(pFreqE) + ")>>\n")
txt.write("<</T(prepared_by)/V(" + str(pPlans) + ")>>\n")
txt.write("<</T(notes)/V(" + str(pWeather) + ")>>\n")
# Write Team Members to FDF file from list lMembers
for item in lMembers:
wMembers = item
arcpy.AddMessage(item)
del item
# Close and write FDF file
txt.write("]\n")
txt.write("endobj\n")
txt.write("trailer\n")
txt.write("<</Root 1 0 R>>\n")
txt.write("%%EO\n")
txt.close ()
row = rows.next()
del rows
del row
nameList = [r.Name for r in arcpy.SearchCursor(myFC)]Then...
i = 0 for name in nameList: print "Item #" + str(i) + " = " + str(name) i = i + 1
for z in rowMembers:
mName = z.getValue("Name")
lMembers.append(mName)
arcpy.AddMessage(mName)