Más

Extraer información de tiempo de arcpy.da.searchcursor y Tuples


Entonces, tengo una clase de entidad en un GDB que contiene datos de tiempo que deseo realizar cálculos a través de arcpy. Estos datos se ingresaron desde una cadena a un formato de fecha y hora en la clase de característica a través de un script que maneja un tipo especial de archivo ASCII.

El formato de salida de esta tupla, cuando se accede mediante arcpy.da.SearchCursor (), adopta la forma siguiente:

(fecha y hora.fecha y hora (1899, 12, 30, 13, 59, 18),)

Donde el tipo de valor que necesito para realizar un cálculo adicional debe tomar la siguiente forma:

datetime.datetime (1899, 12, 30, 0, 0)

Llego a este problema cuando intento el siguiente código:

fc = "C:  scripting  timetest.gdb  test1 " rows = arcpy.da.SearchCursor (fc, ["time"]) a = [] para filas en filas: a.append (fila)

Y cuando miro el tipo de salida, recibo una 'tupla', que es la salida de datos normal de la clase arcpy.da.SearchCursor ().

tipo (a [0]) 

Pero lo que realmente quiero hacer es separar la información de la tupla para poder realizar las operaciones normales de Python con los objetos datetime.datetime.

Las páginas de ayuda no han sido muy útiles para encontrar una forma de separar los datos del formato de tupla. No puedo imprimir la información dentro de la tupla, ni puedo acceder como una matriz. Lo que busco hacer es obtener el objeto datetime.datetime dentro de la tupla para poder realizar mi análisis. ¿Alguien que haya tenido el mismo problema?

He subido un shapefile con el problema que estoy ejecutando en http://brianbancroft.ca/docs/timetest.zip en caso de que alguien quiera intentar ejecutarlo.


Si bien no tengo una respuesta al problema de extraer datos de una tupla con un solo elemento, he encontrado una solución.

En lugar de usar arcpy.da.SearchCursor (), encontré que arcpy.SearchCursor () hizo el trabajo. Usando los mismos datos de muestra, descubrí que puede extraer objetos datetime.datetime realizando lo siguiente:

a = [] filas = arcpy.SearchCursor (fc) para filas en filas: a.append (row.getValue ("tiempo"))

Si está intentando extraer valor de varios campos, esto dará como resultado algunas líneas adicionales de código en el ciclo for / while, pero hará el trabajo de todos modos.


Ver el vídeo: Arcpy Data Access Module Search Cursor (Octubre 2021).