用python脚本根据json文件判断来增加字段并且计算

此代码是为了吧字段中一些不太规范的值翻译到规范里面去
但是前提我们需要根据json文件去判断
格式和字段要注意和代码里面的相对应
用到的arcpy函数:
1、AddField_management——增加字段
2、DeleteField_management——删除字段(这里只是为了确保字段并未存在,兼容低版本的python)
3、arcpy.env.workspace——定义工作空间
4、CalculateField_management——计算字段
5、CopyFeatures_management——复制数据
6、with open(jsonFile, “r”, encoding=“utf-8”) as f:
data_json = json.loads(f.read())——读取josn文件。
python库自带的函数:
1、f{}——包括{}中的所有值
在这里插入图片描述

#需求:通过json文件在shp数据中增加字段并翻译值为规范值,必须项目规范中
    # 特征点:直线点,但是数据中有叫ZZD\直线\ZZ等,但其实是代表的一个意思。那么一个一个去翻译就太累了
#代码逻辑:1、不在原有的数据上进行修改,所以我们要copy一下数据
    2、copy数据后读取json文件,判断是否需要增加字段翻译
    3、其实前面基本所有的代码都是考虑代码的稳定性和容错,还有就是定义数据

import os
import functools
import arcpy
import datetime
import json
#定义工作空间
arcpy.env.overwriteOutput = True

#工具运行完后增加执行信息,这个东西可以随心写,怎么写都行
def _addMessage(mes: str) -> None:
    print(mes)
    arcpy.AddMessage(mes)
    return None

#增加报警信息
def _addWarning(mes: str) -> None:
    print(mes)
    arcpy.AddWarning(mes)
    return None

#增加报错信息
def _addError(mes: str) -> None:
    print(mes)
    arcpy.AddError(mes)
    return None

#工具执行完毕后的运行时间
# decorater --- used to get function run time
def getRunTime(func):
    @functools.wraps(func)
    def _wrapper(*args, **kwargs):
        print(f"Method {func.__name__} start running ! ")
        start = datetime.datetime.now()
        res = func(*args, 
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值