Več

Pridobivanje informacij o času iz arcpy.da.searchcursor in Tuples


Tako imam razred lastnosti v GDB, ki vsebuje časovne podatke, za katere želim izvesti izračune prek arcpyja. Ti podatki so bili vneseni iz niza v obliko datuma v razred lastnosti prek skripta, ki obravnava posebno vrsto datoteke ASCII.

Izhodni format te torbice, ko do nje dostopate z arcpy.da.SearchCursor (), ima obliko naslednjega:

(datetime.datetime (1899, 12, 30, 13, 59, 18),)

Kadar mora vrsta vrednosti, ki jo potrebujem za nadaljnji izračun, imeti naslednjo obliko:

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

Do te težave pridem, ko poskusim naslednjo kodo:

fc = "C:  scripting  timetest.gdb  test1 " vrstice = arcpy.da.SearchCursor (fc, ["čas"]) a = [] za vrstico v vrsticah: a.append (vrstica)

In ko pogledam vrsto izhoda, dobim "tuple", ki je običajen izhod podatkov razreda arcpy.da.SearchCursor ().

vrsta (a [0]) 

Toda tisto, kar resnično želim storiti, je prekiniti informacije iz nabora, tako da lahko izvajam običajne operacije python s predmeti datetime.datetime.

Strani za pomoč niso bile zelo koristne pri iskanju načina, kako iz podatkov izločiti format tuple. Ne morem natisniti podatkov znotraj nabora, niti ne morem dostopati kot matrika. Poskušam dobiti predmet datetime.datetime znotraj torbice, da lahko opravim svojo analizo. Je že kdo naletel na to težavo?

Na spletnem mestu http://brianbancroft.ca/docs/timetest.zip sem naložil datoteko oblike s težavo, ki jo izvajam, v primeru, da jo želi kdo zagnati.


Čeprav nimam odgovora na problem pridobivanja podatkov iz nabora z enim samim elementom, sem našel rešitev.

Namesto da bi uporabil arcpy.da.SearchCursor (), sem ugotovil, da je delo opravil arcpy.SearchCursor (). Z istimi vzorčnimi podatki sem ugotovil, da lahko izvlečete objekte datetime.datetime tako, da izvedete naslednje:

a = [] vrstice = arcpy.SearchCursor (fc) za vrstico v vrsticah: a.append (row.getValue ("čas"))

Če poskušate izvleči vrednost iz več polj, bo to povzročilo nekaj dodatnih vrstic kode v zanki for/while, vendar bo delo vseeno opravljeno.