免费视频|新人指南|投诉删帖|广告合作|地信网APP下载

查看: 927|回复: 3
收起左侧

求助,做成工具报错,不是道是什么原因,python小白,勿笑。

[复制链接]

8

主题

3306

铜板

8

好友

工程师

Rank: 7Rank: 7Rank: 7

积分
423
发表于 2024-5-24 14:30 | 显示全部楼层 |阅读模式
本帖最后由 hhxxyln 于 2024-5-24 14:49 编辑

# ---encoding:utf-8 ---
from imp import reload
import sys
reload(sys)
sys.setdefaultencoding("UTF-8")
import arcpy
inTable = arcpy.GetParameterAsText(0) # 输入
fieldvalue = arcpy.GetParameterAsText(1)  # dlbm
fieldName = arcpy.GetParameterAsText(2) # 三大类

expression_1 = "converse(!"+fieldvalue+"!)"
codeblock='''
def converse(dlbm):
    nyd=['0101','0102','0103','0201','0202','0203','0204','0301','0302','0303','0304','0305','0306','0307','0401','0402','0403','0404','1006','1103','1104','1104A','1107','1107A','1202','1203']
    jsyd=['0603','05H1','0508','0601','0602','0701','0702','08H1','08H2','08H2A','0809','0810','0810A','09','1001','1002','1003','1004','1005','1007','1008','1009','1109','1201']
    wlyd=['1105','1106','1108','1101','1102','1110','1204','1205','1206','1207']
    if dlbm in nyd:
        return "农用地"
    elif dlbm in jsyd:
        return "建设用地"
    elif dlbm in wlyd:
        return "未利用地"
    else:
        return dlbm
    '''
arcpy.CalculateField_management(inTable, fieldName, expression_1, "PYTHON_9.3",codeblock)


8

主题

3306

铜板

8

好友

工程师

Rank: 7Rank: 7Rank: 7

积分
423
 楼主| 发表于 2024-5-24 14:31 | 显示全部楼层
错误原因在倒数第二行
回复 支持 反对

使用道具 举报

0

主题

304

铜板

1

好友

技术员

Rank: 3Rank: 3

积分
28
发表于 2024-7-1 10:01 | 显示全部楼层
学习学习
回复

使用道具 举报

0

主题

4325

铜板

1

好友

教授级高工

Rank: 12Rank: 12Rank: 12

积分
1289
发表于 2024-9-13 18:09 | 显示全部楼层
学习下排错
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

在线客服
快速回复 返回顶部 返回列表