arcpy中图层名为中文时,无法判断相等

def SetASSETCODE(layer):
    
    assetcode="0"
    if layer.name=='标线':
        assetcode="2200700000000"
     if layer.name=='路面':
        assetcode="2200800000000"  

    arcpy.CalculateField_management(layer.name,"ASSETCODE",assetcode)

try:
    mxd = arcpy.mapping.MapDocument("CURRENT")
    for lyr in arcpy.mapping.ListLayers(mxd):
       SetASSETCODE(lyr)
except Exception as e:
    print e.message
 
 
上面是我的代码,在mxd文件中包含很多图层,我通过遍历图层,对图层所对应的属性表中ASSETCODE批量赋值,但是在执行的过程发现函数SetASSETCODE 里面的if语句全都是false,图层名是中文;
在网上看到说要转码
if layer.name==("标线".decode('gb2312')):
这么改以后还是无法执行
百思不得其解,请高手指点
谢谢!
已邀请:

turtle

赞同来自: zsf

谢邀
可以考虑对layer.name进行转码

python-code.png

 

细风

赞同来自:

问题解决了,非常感谢

要回复问题请先登录注册