Sie müssen das Konzept der Python-Cursor verstehen.
Sie sind den SQL-Datenbankcursorn in PEP 249: Python Database API Specification v2.0 nachempfunden , um die von Datenbankabfragen zurückgegebenen Ergebnisse zu verarbeiten.
Die meisten Python-Datenbankschnittstellen entsprechen diesem Standard: cx_Oracle (Oracle), Psycopg2 (PostgreSQL / PostGIS), MySQLdb (MySQL), sqlite3 (SQLite) usw.
Ein Cursor ermöglicht das Abrufen einer oder mehrerer Zeilen des Ergebnisses, bis alle übereinstimmenden Zeilen verarbeitet wurden, und ruft die gesamte Ergebnismenge auf einmal ab, was zu Problemen bei der Verarbeitungsgeschwindigkeit (Leistung) führen kann ( Gibt es etwas schnelleres als einen Cursor? in ArcGIS Datensätze berechnen? ).
Die Datenbankcursor geben im Allgemeinen eine Liste von Tupeln oder eine Liste von Listen zurück, während die Cursormethoden in ArcGIS ein Python-Aufzählungsobjekt zurückgeben.
Um die Cursorlösung zu verbessern, gibt es mehrere Wrapper, die vereinfachte Schnittstellen zu SQL-Datenbanken bieten. Einige davon werden möglicherweise als objektrelationale Mapper oder ORM (Erstellung von Pythonic-Objekten aus Datenbankzeilen) bezeichnet, andere helfen möglicherweise nur beim Generieren von SQL oder bieten einfache Unterstützung für die Zuordnung (siehe Datenbankprogrammierung auf höherer Ebene ).
Für ArcPy werden Lösungen beispielsweise von Sean Gillies ( Get with it ) und anderen bereitgestellt .
Die anderen Geodatenlösungen (PyQGIS, Gras, osgeo.ogr, Pyshp, Rpy, Fiona, PySAL usw.) Verwenden keine Cursor, was die Sache einfacher macht ...
del myCursor
?