# Using ArcPy update cursor to replace <Null> value?

I have been combing the help associated with (None) values in arc, and have not been able to solve the following problem:

I have a a field with mixed Null and integer values:

0 100

I would like to transform the null values to 0's in python:

   cursor = arcpy.UpdateCursor(fishJoin, ['myField']):

for row in cursor:
if row is None:
row = 0
cursor.updateRow(row)


This does not alter any of the null values.

I'm using ArcGIS Desktop 10.0.

I would recommend using the data access module da with the Update Cursor as you will notice significant performance improvements. The following is the correct syntax to replace <Null> (aka None) values with 0.

import arcpy

fc = r'C:\path\to\your\FGDB.gdb\andFC'

with arcpy.da.UpdateCursor(fc, ["Field_Name"]) as cursor:
for row in cursor:
if row[0] == None:
row[0] = 0
cursor.updateRow(row)

print "Processing complete"


The following is the correct syntax for ArcGIS 10.0 (i.e. without the da module).

import arcpy

fc = r'C:\path\to\your\FGDB.gdb\andFC'

cursor = arcpy.UpdateCursor(fc)

for row in cursor:
if row.YourFieldName == None:
row.YourFieldName = 0
cursor.updateRow(row)

print "Processing complete"

del row

• This script runs for me but does not end up changing the attribute. My attribute is not a <Null> value but rather empty (i.e. '') It prints "Processing Complete" but does not updated the value. Here is my code: import arcpy fc = r'D:\_data\sidewalk.gdb\repairs' cursor = arcpy.UpdateCursor(fc) for row in cursor: if row.FixedBy == None: row.YourFieldName = 'Contractor' cursor.updateRow(row) print "Processing complete" del row – cbunn Jun 8 '17 at 13:31
• @cbunn I would urge you to open a new question. It is difficult to understand your code in the comments. – Aaron Jun 8 '17 at 13:37
• Sorry, it is its own question now here: gis.stackexchange.com/questions/243256/… – cbunn Jun 8 '17 at 13:39