5 votos

ArcPy Informe de error de sintaxis

Estoy trabajando tratando de usar arcpy para automatizar la creación de un informe, pero me estoy quedando en un problema.

>>> arcpy.mapping.ExportReport('2013pp',"C:\reports\2013_Graffiti.rlf","C:\reports\2013_Graffiti_report.pdf")

Runtime error 
Traceback (most recent call last):
  File "<string>", line 1, in <module>
  File "c:\program files\arcgis\desktop10.1\arcpy\arcpy\utils.py", line 181, in fn_
    return fn(*args, **kw)
  File "c:\program files\arcgis\desktop10.1\arcpy\arcpy\mapping.py", line 506, in ExportReport
    assert isinstance(report_source, (MapDocument, TableView, Layer)), str(type(report_source))
AssertionError: <type 'str'>

Estoy teniendo problemas para descifrar las trazas como parece hacer referencia a una variedad de internos de los archivos de python. En la solución de problemas tan lejos, pensé que el problema podría ser que el report_source debe ser un archivo de capa y yo estaba usando una .shp así que me he convertido a una .lyr pero luego me sale el error:

Parsing error SyntaxError: invalid syntax (line 1)

En respuesta a las sugerencias a continuación, he intentado lo siguiente con rutas completas, pero estoy recibiendo el mismo error.

>>> arcpy.mapping.ExportReport('2013pp',r"C:\reports\Graffiti.rlf", r"C:\reports\2013_Graffiti_report.pdf")
Runtime error 
Traceback (most recent call last):
  File "<string>", line 1, in <module>
  File "c:\program files\arcgis\desktop10.1\arcpy\arcpy\utils.py", line 181, in fn_
    return fn(*args, **kw)
  File "c:\program files\arcgis\desktop10.1\arcpy\arcpy\mapping.py", line 506, in ExportReport
    assert isinstance(report_source, (MapDocument, TableView, Layer)), str(type(report_source))
AssertionError: <type 'str'>

Cuando intento Señor sugerencia me sale lo siguiente:

>>> arcpy.mapping.ExportReport(arcpy.mapping.Layer('2013pp.lyr'),"C:\reports\2013_Graffiti.rlf","C:\reports\2013_Graffiti_report.pdf")
Runtime error 
Traceback (most recent call last):
  File "<string>", line 1, in <module>
  File "c:\program files\arcgis\desktop10.1\arcpy\arcpy\arcobjects\mixins.py", line 389, in __init__
    super(LayerMixin, self).__init__(lyrfile)
  File "c:\program files\arcgis\desktop10.1\arcpy\arcpy\arcobjects\_base.py", line 47, in __init__
    for arg in args))
ValueError: Object: CreateObject Layer invalid data source
>>> 

La última parte sobre los datos no válidos fuente hace que me pregunte acerca de si el archivo de forma es aceptable...debe ser dado a que soy capaz de crear manualmente un informe con ella.

Como un aparte, ¿se trata sólo de un arcpy herramienta de mapeo, es decir, yo no la puede encontrar en el modelo del generador o en una caja de herramientas? Yo estaba esperando para tratar de atacar el problema mediante la creación de la herramienta en el modelo del generador, la exportación y el examen de la secuencia de comandos.

Cualquier consejo sería muy apreciada, Mejor, David

5voto

Sork Puntos 26

mapping.py está ejecutando una afirmación de prueba para asegurarse de que su informe se trata de una fuente MapDocument, en formato tableview, o la Capa. Este es el primer argumento que usted proporcionó.

Y no es un MapDocument, en formato tableview, o Capa, es una cadena. Que es lo AssertionError: <type 'str'> medios.

En lugar de dar la cadena '2013pp' necesita de una referencia directa a 2013pp como un objeto de Capa. Probar:

arcpy.mapping.ExportReport(arcpy.mapping.Layer(u'C:\\project\\2013pp.lyr'),u'C:\\Py‌​thon\\reports\\2013_Graff‌​iti.rlf', u'C:\\report.pdf')

Lo que he hecho aquí es convertir la cadena en un objeto de Capa en el medio de los argumentos de la función. Edit: Modificado basado en la ruta de acceso completa .archivo lyr. También se convierte en todas las cadenas unicode

2voto

Hameno Puntos 129

Creo que esto podría ser un camino problema, pruebe el siguiente ejemplo.

por ejemplo,

arcpy.mapping.ExportReport('2013pp',r"C:\reports\2013_Graffiti.rlf",r"C:\reports\2013_Graffiti_report.pdf")

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X