Expression: Answer(!Contig_ID!) Code Block: def Answer(CI): if CI ==None: return "N" else: return "Y"
Expression: Answer(!Contig_ID!) Code Block: def Answer(CI): if CI == 99999: # or '99999' if string... return "N" else: return "Y"
expr = '"REFERENCE_FIELD" IS NULL' arcpy.MakeFeatureLayer_management('FEATURE_CLASS_NAME', 'temp', expr) arcpy.CalculateField_management('temp', 'CALCULATED_FIELD', VALUE)
Expression: TestForNullOrEmpty(str(!FieldA!)) Code Block: def TestForNullOrEmpty(fieldVal): if len(fieldVal.strip()) == 0: return "FieldValueWasNullOrEmpty" else: return "FieldHadSomethingInItAlready"
All this solutions will work if you are on a edit session. You must Start editing the feature for the code to replace the value.
try
if not CI:
I was testing for None for Null field -- i.e. if CI == 'None' for field returned with UpdateCursorEven though a print statement returned 'None', couldn't be tested for as above.
if not ___
seems to work fine.
Cheers
When cursors encounter NULL they return None and not 'None', which is a very important distinction. The former is the Python None object while the latter is simply a string with the word None. The expression CI == 'None' will never evaluate true for cursors returning fields with NULL. The proper way to check for a NULL field with cursors is CI is None
None
'None'
CI == 'None'
CI is None
Joshua -- many thanks -- I am a Python newbie -- does the Python None object equate to false in logical tests?
Yes, see 2.3.1 Truth Value Testing . Since there are several other data structures that exhibit falsy behavior, e.g., an empty string, testing for false instead of for None might result in some non-NULL fields getting treated as NULL.
Aangemelde leden kunnen berichten plaatsen, updates volgen en meer. Nieuw hier? Registreer een gratis account.
Find useful guides, FAQs, and documents to help you navigate and make the most of Esri Community.