<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: How to use Python Pre-Logic in Field Calculator in Python Questions</title>
    <link>https://community.esri.com/t5/python-questions/how-to-use-python-pre-logic-in-field-calculator/m-p/660310#M51306</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;I think you want to do this.&lt;/SPAN&gt;&lt;BR /&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;def myfunc(SYMBOL, ID, OPER_MAINT_LEVEL):
&amp;nbsp;&amp;nbsp;&amp;nbsp; if ((ID == "4648" and OPER_MAINT_LEVEL == "1 - BASIC CUSTODIAL CARE (CLOSED)") or
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (ID == "4663C" and OPER_MAINT_LEVEL == "1 - BASIC CUSTODIAL CARE (CLOSED)")
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (ID == "4654")):
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return 4
&amp;nbsp;&amp;nbsp;&amp;nbsp; else:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return SYMBOL&lt;/PRE&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Sun, 12 Dec 2021 03:55:50 GMT</pubDate>
    <dc:creator>MathewCoyle</dc:creator>
    <dc:date>2021-12-12T03:55:50Z</dc:date>
    <item>
      <title>How to use Python Pre-Logic in Field Calculator</title>
      <link>https://community.esri.com/t5/python-questions/how-to-use-python-pre-logic-in-field-calculator/m-p/660309#M51305</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;I am trying to use if/then python pre-logic in field calculator to only change the value of a field when one or two other fields equal a predefined value.&amp;nbsp; I can get it to work partially using the following code but it does not keep the original values for fields where "if=FALSE".&amp;nbsp; I have tried using "pass" but it does not seem to work the way I need it to.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Pre-logic:&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;def myfunc(SYMBOL,ID,OPER_MAINT_LEVEL):&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if ID == "4648" and OPER_MAINT_LEVEL == "1 - BASIC CUSTODIAL CARE (CLOSED)":&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return 4&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if ID == "4654":&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return 4&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if ID == "4663C" and OPER_MAINT_LEVEL == "1 - BASIC CUSTODIAL CARE (CLOSED)":&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return 4&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; else:&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SYMBOL&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;SYMBOL=&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;myfunc( !SYMBOL!, !ID!, !OPER_MAINT_LEVEL! )&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 07 Jan 2013 16:17:31 GMT</pubDate>
      <guid>https://community.esri.com/t5/python-questions/how-to-use-python-pre-logic-in-field-calculator/m-p/660309#M51305</guid>
      <dc:creator>Anonymous User</dc:creator>
      <dc:date>2013-01-07T16:17:31Z</dc:date>
    </item>
    <item>
      <title>Re: How to use Python Pre-Logic in Field Calculator</title>
      <link>https://community.esri.com/t5/python-questions/how-to-use-python-pre-logic-in-field-calculator/m-p/660310#M51306</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;I think you want to do this.&lt;/SPAN&gt;&lt;BR /&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;def myfunc(SYMBOL, ID, OPER_MAINT_LEVEL):
&amp;nbsp;&amp;nbsp;&amp;nbsp; if ((ID == "4648" and OPER_MAINT_LEVEL == "1 - BASIC CUSTODIAL CARE (CLOSED)") or
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (ID == "4663C" and OPER_MAINT_LEVEL == "1 - BASIC CUSTODIAL CARE (CLOSED)")
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (ID == "4654")):
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return 4
&amp;nbsp;&amp;nbsp;&amp;nbsp; else:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return SYMBOL&lt;/PRE&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sun, 12 Dec 2021 03:55:50 GMT</pubDate>
      <guid>https://community.esri.com/t5/python-questions/how-to-use-python-pre-logic-in-field-calculator/m-p/660310#M51306</guid>
      <dc:creator>MathewCoyle</dc:creator>
      <dc:date>2021-12-12T03:55:50Z</dc:date>
    </item>
    <item>
      <title>Re: How to use Python Pre-Logic in Field Calculator</title>
      <link>https://community.esri.com/t5/python-questions/how-to-use-python-pre-logic-in-field-calculator/m-p/660311#M51307</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;BLOCKQUOTE class="jive-quote"&gt;I think you want to do this.&lt;BR /&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;def myfunc(SYMBOL, ID, OPER_MAINT_LEVEL):
&amp;nbsp;&amp;nbsp;&amp;nbsp; if ((ID == "4648" and OPER_MAINT_LEVEL == "1 - BASIC CUSTODIAL CARE (CLOSED)") or
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (ID == "4663C" and OPER_MAINT_LEVEL == "1 - BASIC CUSTODIAL CARE (CLOSED)")
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (ID == "4654")):
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return 4
&amp;nbsp;&amp;nbsp;&amp;nbsp; else:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return SYMBOL&lt;/PRE&gt;&lt;/BLOCKQUOTE&gt;&lt;BR /&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Thanks.&amp;nbsp; I did not think to put it all into one query line. This seems to work except when ID and/or OPER_MAINT_LEVEL is null it does not return the value for SYMBOL.&amp;nbsp; Is there a way still return the SYMBOL value when there are nulls in these fields?&amp;nbsp; What about adding&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; elif ID== "NULL" or Oper =="NULL": return SYMBOL/&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sun, 12 Dec 2021 03:55:53 GMT</pubDate>
      <guid>https://community.esri.com/t5/python-questions/how-to-use-python-pre-logic-in-field-calculator/m-p/660311#M51307</guid>
      <dc:creator>Anonymous User</dc:creator>
      <dc:date>2021-12-12T03:55:53Z</dc:date>
    </item>
    <item>
      <title>Re: How to use Python Pre-Logic in Field Calculator</title>
      <link>https://community.esri.com/t5/python-questions/how-to-use-python-pre-logic-in-field-calculator/m-p/660312#M51308</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Nulls are a little tricky. You could give something like this a try.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;if not ID or not OPER_MAINT_LEVEL:
&amp;nbsp;&amp;nbsp;&amp;nbsp; return SYMBOL&lt;/PRE&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sun, 12 Dec 2021 03:55:56 GMT</pubDate>
      <guid>https://community.esri.com/t5/python-questions/how-to-use-python-pre-logic-in-field-calculator/m-p/660312#M51308</guid>
      <dc:creator>MathewCoyle</dc:creator>
      <dc:date>2021-12-12T03:55:56Z</dc:date>
    </item>
    <item>
      <title>Re: How to use Python Pre-Logic in Field Calculator</title>
      <link>https://community.esri.com/t5/python-questions/how-to-use-python-pre-logic-in-field-calculator/m-p/660313#M51309</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;BLOCKQUOTE class="jive-quote"&gt;Nulls are a little tricky. You could give something like this a try.&lt;BR /&gt;&lt;BR /&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;if not ID or not OPER_MAINT_LEVEL:
&amp;nbsp;&amp;nbsp;&amp;nbsp; return SYMBOL&lt;/PRE&gt;&lt;/BLOCKQUOTE&gt;&lt;BR /&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Here is how I got it to work using str(!OPER_MAINT_LEVEL!):&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;def myfunc(SYMBOL,ID,OPER_MAINT_LEVEL):
&amp;nbsp;&amp;nbsp;&amp;nbsp; if not ID or not OPER_MAINT_LEVEL:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return SYMBOL
&amp;nbsp;&amp;nbsp;&amp;nbsp; if ((ID == "4648" and OPER_MAINT_LEVEL == "1 - BASIC CUSTODIAL CARE (CLOSED)") or 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (ID == "4654") or
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (ID == "4663C" and OPER_MAINT_LEVEL == "1 - BASIC CUSTODIAL CARE (CLOSED)")):
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return 4
&amp;nbsp;&amp;nbsp;&amp;nbsp; else:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return SYMBOL

Expression:
SYMBOL =
myfunc(!SYMBOL!, !ID!, str(!OPER_MAINT_LEVEL!) )&lt;/PRE&gt;&lt;SPAN&gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Thanks for your help on this.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sun, 12 Dec 2021 03:55:58 GMT</pubDate>
      <guid>https://community.esri.com/t5/python-questions/how-to-use-python-pre-logic-in-field-calculator/m-p/660313#M51309</guid>
      <dc:creator>Anonymous User</dc:creator>
      <dc:date>2021-12-12T03:55:58Z</dc:date>
    </item>
  </channel>
</rss>

