Select to view content in your preferred language

List Anomaly

875
2
Jump to solution
07-15-2013 06:58 AM
JorgeKappa
Regular Contributor
So I'm trying to export a subset of a DDP setup. Print statements are just for debugging purposes:
If I do this, it works out fine:
import arcpy mxd = arcpy.mapping.MapDocument("CURRENT") pageNameList = ["DSA107", "DSA108"] #arcpy.GetParameter(0) outputFolder = arcpy.GetParameterAsText(1) for pageName in pageNameList:       pageID = mxd.dataDrivenPages.getPageIDFromName(pageName)     mxd.dataDrivenPages.currentPageID = pageID     print outputFolder + '\\' + str(pageName) + '.jpg'     #arcpy.mapping.ExportToJPEG(mxd, outputFolder + "\\" + str(pageName) + ".jpg", resolution=200)  #Ouptut: C:\Users\jkappa\Desktop\DSA107.jpg C:\Users\jkappa\Desktop\DSA108.jpg 


But if I do this, which is what I really want to do so the user can input through the interface of a script tool, it does this:
import arcpy mxd = arcpy.mapping.MapDocument("CURRENT") pageNameList = arcpy.GetParameter(0)  #["DSA107", "DSA108"] outputFolder = arcpy.GetParameterAsText(1) for pageName in pageNameList:       pageID = mxd.dataDrivenPages.getPageIDFromName(pageName)     mxd.dataDrivenPages.currentPageID = pageID     print outputFolder + '\\' + str(pageName) + '.jpg'     #arcpy.mapping.ExportToJPEG(mxd, outputFolder + "\\" + str(pageName) + ".jpg", resolution=200)  #Ouptut: C:\Users\jkappa\Desktop\D.jpg C:\Users\jkappa\Desktop\S.jpg C:\Users\jkappa\Desktop\A.jpg C:\Users\jkappa\Desktop\1.jpg C:\Users\jkappa\Desktop\0.jpg C:\Users\jkappa\Desktop\7.jpg C:\Users\jkappa\Desktop\;.jpg C:\Users\jkappa\Desktop\D.jpg C:\Users\jkappa\Desktop\S.jpg C:\Users\jkappa\Desktop\A.jpg C:\Users\jkappa\Desktop\1.jpg C:\Users\jkappa\Desktop\0.jpg C:\Users\jkappa\Desktop\8.jpg


I've been stuck for a while now.
Can somebody clue me in, please?
Tags (2)
0 Kudos
1 Solution

Accepted Solutions
JorgeKappa
Regular Contributor
If you do this test you'll find you are not getting a list but a string.

type(pageNameList)


Probably something like this "\"DSA107\";\"DSA108\""

You'll need to convert the string to a list, this may work for you.

pageNameList = pageNameList.split(';')


Bingo! Thank you, mz, Here's the working code:

import arcpy mxd = arcpy.mapping.MapDocument("CURRENT") pageNameList = arcpy.GetParameter(0)  #["DSA107", "DSA108"] outputFolder = arcpy.GetParameterAsText(1) pageNameList = pageNameList.split(";") for pageName in pageNameList:      pageID = mxd.dataDrivenPages.getPageIDFromName(pageName)     mxd.dataDrivenPages.currentPageID = pageID     print outputFolder + '\\' + str(pageName) + '.jpg'     #arcpy.mapping.ExportToJPEG(mxd, outputFolder + "\\" + str(pageName) + ".jpg", resolution=200) #Output: C:\Users\jkappa\Desktop\DSA107.jpg C:\Users\jkappa\Desktop\DSA108.jpg

View solution in original post

0 Kudos
2 Replies
MathewCoyle
Honored Contributor
If you do this test you'll find you are not getting a list but a string.

type(pageNameList)


Probably something like this "\"DSA107\";\"DSA108\""

You'll need to convert the string to a list, this may work for you.

pageNameList = pageNameList.split(';')
0 Kudos
JorgeKappa
Regular Contributor
If you do this test you'll find you are not getting a list but a string.

type(pageNameList)


Probably something like this "\"DSA107\";\"DSA108\""

You'll need to convert the string to a list, this may work for you.

pageNameList = pageNameList.split(';')


Bingo! Thank you, mz, Here's the working code:

import arcpy mxd = arcpy.mapping.MapDocument("CURRENT") pageNameList = arcpy.GetParameter(0)  #["DSA107", "DSA108"] outputFolder = arcpy.GetParameterAsText(1) pageNameList = pageNameList.split(";") for pageName in pageNameList:      pageID = mxd.dataDrivenPages.getPageIDFromName(pageName)     mxd.dataDrivenPages.currentPageID = pageID     print outputFolder + '\\' + str(pageName) + '.jpg'     #arcpy.mapping.ExportToJPEG(mxd, outputFolder + "\\" + str(pageName) + ".jpg", resolution=200) #Output: C:\Users\jkappa\Desktop\DSA107.jpg C:\Users\jkappa\Desktop\DSA108.jpg
0 Kudos