python len() 字段计算

问题描述

我正在尝试在 Arcgis pro 中的字段计算中编写脚本。来自其他字段的值将汇总到一个新字段中。对于低于 60 米的值,该值应设置为 60。应汇总所有其他值。此外,型号名称应以大写字母书写。如果任何字段中都没有值,则应显示“无数据”。 不幸的是我找不到错误..

对此的任何帮助将不胜感激!

值 (!Typ1!,!Typ2!,!Typ3!,!Shape_area!,!total!)

def value (Fieldvalue1,Fieldvalue2,Fieldvalue3,Fieldvalue4,Fieldvalue5):
    
       
        if len(Fieldvalue1) > 1:
            combine = str(Fieldvalue1) + "_" + Fieldvalue4
            return combine
    
        elif len(Fieldvalue2) > 1:
            combine = str(Fieldvalue2) + "_" + Fieldvalue4
            return combine
    
        elif len(Fieldvalue3) > 1:
            combine = str(Fieldvalue3) + "_" + Fieldvalue4
            return combine

        if Fieldvalue4 < 60:
            return "60"

        else:
            return "No data"


        Fieldvalue5 = Fieldvalue5.upper()

解决方法

在if比较表达式中尝试将Fieldvalue4在加法之前转换为str或转换为int(如果是str)。

,

字段具有长度属性:

def value (Fieldvalue1,Fieldvalue2,Fieldvalue3,Fieldvalue4,Fieldvalue5):

   
    if Fieldvalue1.length > 1:
        combine = str(Fieldvalue1) + "_" + Fieldvalue4
        return combine

    elif Fieldvalue2.length > 1:
        combine = str(Fieldvalue2) + "_" + Fieldvalue4
        return combine

    elif Fieldvalue3.length > 1:
        combine = str(Fieldvalue3) + "_" + Fieldvalue4
        return combine

    if Fieldvalue4 < 60:
        return "60"

    else:
        return "No data"

    # Dead code here
    Fieldvalue5 = Fieldvalue5.upper()