问题描述:
现因工作的需要,对照2017最新版:《土地利用现状分类》(GBT 21010-2017)
,需根据DLMC对DLBM进行批量修改,如旱地是0103,其他林地是0307等,共计19种用地类型。
问题解决:
由于python中中文编码的影响,字段计算器老是出现问题,后来终于找到了解决办法:
在中文编码后加.decode(‘utf-8’)进行编码转换。
完整代码为:
def fun(a):if a=='水浇地'.decode('utf-8'):return '0102'elif a=='旱地'.decode('utf-8'):return '0103'elif a=='有林地'.decode('utf-8'):return '0111'elif a=='灌木林地'.decode('utf-8'):return '0305'elif a=='其他林地'.decode('utf-8'):return '0307'elif a=='人工牧草地'.decode('utf-8'):return '0403'elif a=='其他草地'.decode('utf-8'):return '0404'elif a=='铁路用地'.decode('utf-8'):return '1001'elif a=='公路用地'.decode('utf-8'):return '1003'elif a=='水库水面'.decode('utf-8'):return '1103'elif a=='坑塘水面'.decode('utf-8'):return '1104'elif a=='内陆滩涂'.decode('utf-8'):return '1106'elif a=='水工建筑用地'.decode('utf-8'):return '1109'elif a=='设施农用地'.decode('utf-8'):return '1202'elif a=='城市'.decode('utf-8'):return '201'elif a=='建制镇'.decode('utf-8'):return '202'elif a=='村庄'.decode('utf-8'):return '203'elif a=='采矿用地'.decode('utf-8'):return '0602'elif a=='风景名胜及特殊用地'.decode('utf-8'):return '0906'else:return '0000'
使用以下方法,不尽如人意。
# -*- coding: utf-8 -*-