此代码是为了吧字段中一些不太规范的值翻译到规范里面去
但是前提我们需要根据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,