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')):
这么改以后还是无法执行
百思不得其解,请高手指点
谢谢!
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')):
这么改以后还是无法执行
百思不得其解,请高手指点
谢谢!
2 个回复
turtle
赞同来自: zsf
可以考虑对layer.name进行转码
细风
赞同来自:
要回复问题请先登录或注册
发起人
相关问题
问题状态
—— 扫技术支持中心微信服务号!
—— 让GIS知乎问答随时随地!