Accessing data with cursors – ArcGIS Pro

Recommended By Our Editors

Do you like what you read?

Sign up for our Tips & Tricks newsletter for expert advice on how to get the most out of your technology.

This newsletter will certainly contain advertisements, offers or links. Subscribing to the newsletter indicates better agreement with our terms of use and our privacy policy. You can unsubscribe from newsletters at any time.

Freedom Scientific is the world’s largest manufacturer of assistive technology for the blind and visually impaired.

Cursor a is a data access target that can be used to iterate over rowset a in a table or to insert desired rows into a table. Cursors have three forms: search, insert, and advance. Cursors are often used to use existing recognized geometries and to write your own geometries.

Each type of cursor is created because the ArcPy(SearchCursor, InsertCursor, or UpdateCursor) corresponds to a table, process, table feature class, or feature layer. A search cursor can be created to retrieve strings. The edit cursor can be used to update rows and delete accordingly, and the application cursor can be used as long as it is used to insert rows based on a feature class or table. Maybe

Sliders point straight ahead; They do not support restoring from a backup and rows that have already been restored. When there are multiple data transitions to be made in the history, the cursor reset secret can be invoked.

Preparing search or update cursors can be repeated in a loop. The next row is also likely to be accessed by explicitly using the next method to return the next row. If the next method is used on a cursor to retrieve all rows from a table of rows, the script must make N calls to next. The make command throws a StopIteration exception after getting the last short part of the result set.

Import Arcpy

Cursor = arcpy.da.SearchCursor(fc, 'fieldB'])
For ['fielda', line at cursor:
Import Arcpy

with arcpy.da.SearchCursor(fc, ['fieldA', 'fieldB']) this cursor:
    briefly in the slider:

Any short period taken from the array will most likely be returned as a list of trade values. Will values ​​are sometimes returned in the same order as the cursor’s field_names question. The cursor field property can also be used to confirm that you are seeing a value order field.

Cursor Object

Search cursor , UpdateCursor< /a> and Insert cursor< / a > Expand the object, which can be used to cycle through the most important entries. The exact cursor object methods created by many types of cursor functions differ depending on the position of the cursor being created.

In the following tableHere are the methods supported by each cursor type:

Cursor colspan=”1″>Method


reset – Resets the cursor to a safe home position.


insertRow – inserts a short dot into the array.


updateRow – Updates the current row.

deleteRow – Deletes each row from the table.

reset – Resets the cursor so it maintains its starting position.

Insert Line

The get cursor is used to create and insert series. Once the cursor needs to be created, the insertRow method is always used to insert into the function (or tuple) values ​​that reach a new row. Any field in a tableAnything that is not in the cursor will almost certainly be assigned the field’s fallback value.

Import Arcpy

# Create an insertion cursor in an array
cursor = arcpy.da.InsertCursor("c:/base/data.gdb/roads_lut",
                               ["Street ID", "Distance"])

# Create 25 new lines. Set start row id and individual values ​​globally
for i in the interval (0.25):
   Cursor .insertRow([i, 100])


This method is now used to update the string to the full current position of the expansion cursor. After returning the row a during the cursor object, you can expand the row as needed and change the updateRow solution by changing this line.

Import Arcpy

# Create an update cursor with an object class
with arcpy.da.UpdateCursor("c:/base/data.gdb/roads",
                           ["road type", "distance"]) as a slider:
    while line at cursor:
        number Updates the values ​​in the long distance field to
 Multiply the street type number by one hundred. Street type: 1, couple, 3 or 4.
       string[1] equals * string[0] 100


The deleteRow method is used to actually delete the row at the current position and update the cursor. After wrapping a row in deleteRow, call this cursor to delete the row.

Import Arcpy

# Create an update cursor for the accessible class
with arcpy.da.UpdateCursor("c:/base/data.gdb/roads",
                          ["road type"]), so the cursor:
    # Delete all rows with lane type 4
    for multiple lines in cursor:
        obviously if string[0] == 4 :

Ringtone Access And Settings

Each field slider uses numeric farms provided by a directory (or tuple) of field names. When a line is swiped away from the cursor, it is presented as a list of field price ranges corresponding to the index position.

In each example below, the number of names, states, and companies is listed in the available position.

Import Arcpy


# Use SearchCursor to access name and count status
with arcpy.da.['STATE_NAME', searchcursor(fc, 'POP2000']) as cursor:
    for string in kursore:
        # Access plus outputs row values ​​by service position.
        # say name: string[0]
        # population: string[1]
       print(' has almost all populations of '.Row[1]))

While in the format (string[0] all fields are available with any good asterisk (*), this is generally not recommended. The more fields specified, the longer the cursor will run slower. Just list the fields you are interested in. With using it increases the main efficiency of the slider.

Tokens can now also be used as shortcuts for placing field names. All tables contain an ID segment, which can be multiple depending on the type of data. Simple force classes require a geometry field, usually (but always) without the Shape name. The OID@ token can be used to successfully access a feature ID field because the SHAPE@ token (returning a new geometry object) can be used to access the geometry of an absolute feature class field without first knowing the field names. </p></p> </div> <div id="comments"> <p class="nocomments">Comments are closed.</p> </div><!-- #comments --> <div class="meta bar"> <p class="permalink"> <a href=""><span rel="March 25, 2022">7 months ago</span></a> <a href=" " class="shorturl"><span>Short URL</span></a> <span class="comment-count"></span> </p> <div class="tagbar"> <p class="tags cats"><a href="" rel="category tag">Black Screen</a></p> </div><!-- .tagbar --> </div><!-- .meta .bar --> </div><!-- .postbody .text --> </div><!-- .post --> </div><!-- #posts --> <div id="widgets" class="widget-area postbody"> <aside id="pages-2" class="widget widget_pages"><h3 class="widget-title">Pages</h3> <ul> <li class="page_item page-item-4"><a href="">About</a></li> <li class="page_item page-item-5"><a href="">Contact</a></li> <li class="page_item page-item-6"><a href="">Privacy</a></li> <li class="page_item page-item-8"><a href="">WinXTool – Windows Support & Repair Tools</a></li> </ul> </aside> </div><!-- #widgets .widget-area --> <div id="footer"> <p> <a href="" rel="prev"><span class="prev">Previous Post</span></a> <a href="" rel="next"><span class="next">Next post</span></a> </p> </div> </div> <div id="credit"> <p><strong><a href="" rel="generator">Proudly powered by WordPress</a></strong><span class="sep"> <br /> </span>Theme: Esquire by <strong><a href="" rel="designer">Matthew Buchanan</a></strong>.</p> </div> <script type='text/javascript' src='' id='swv-js'></script> <script type='text/javascript' id='contact-form-7-js-extra'> /* <![CDATA[ */ var wpcf7 = {"api":{"root":"https:\/\/\/wp-json\/","namespace":"contact-form-7\/v1"}}; /* ]]> */ </script> <script type='text/javascript' src='' id='contact-form-7-js'></script> </body> </html>