Lydia wrote:
I am working on calculating one of the fields in a feature class based
on other 2 fields. The logic is,
A (the resulting field) is calculated from B, but C and D have part of
the value that could fill the blank of B, which meaning that combine
three fields of values can make A.
Field A is what I need.
The data looks like: .
A B C D
2 2
5 5
4 4
6 6
cur = gp.UpdateCursor(data)
row = cur.Next()
gp.CalculateField_management(data, "A", "[B]", "VB", "")
Those indents are wrong, and would cause a syntax error, so this must
not be the code you actually ran. When posting, please copy and paste
instead of retyping.
Does the last line set A from B? Should it be inside the loop?
while row:
cur.UpdateRow(row)
Or does this magically set A from B?
if not(row.GetValue("C") == 'NULL'):
This should be the same as
if row.GetValue("C") != 'NULL':
which I find easier to read.
From what you said before, you only want to set A from C or D if B is
blank. If so, this section should be indented under
if row.GetValue("B") == 'NULL':
row.SetValue("A",row.GetValue("C"));
elif not(row.GetValue("D") == 'NULL'):
row.SetValue("A",row.GetValue("D"));
row = cur.Next()
del cur
del row
Again, indent is erroneous.
But the out looks like only B was calculated to A successfully. C&D are
not in A.
I have no idea why not. A main way to debug is to insert print
statements into the code in appropriate places and see if what is
printed matched what you expect.
I guess there must be something wrong with the code, but I am very new
to Python, and not familiar with the expression. Could anybody help ?
PS. I am coding Python with ARCGIS.
I am not familiar with ARCGIS.
tjr
--
http://mail.python.org/mailman/listinfo/python-list